windows下QT如何集成OpenCV

发布于:2024-04-02 ⋅ 阅读:(82) ⋅ 点赞:(0)

说明

我在windows下使用QT Creator12创建的CMake项目,需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的,所以无法使用VS studio版本的dll库。

为什么vs的版本不能用

我安装QT选择的是MinGW版本,本地编译QT工程只能选择MinGW编译方式。选择vs的两个版本无法构建。

在这里插入图片描述

根据参考资料里《mingw如何链接vs方式编译生成的动态库?》中的说法,vs的c++ abi是stdcall, 而mingw使用的调用方式是cdecl。也就是说两个编译器的c++ abi不兼容的,故而无法识别对方导出的符号完成链接。

我一开始下载的opencv官方预编译的包,结果一直显示“error: undefined reference to”这样的错误。后来换了MinGW的Opencv库就可以了。

如何下载MinGW编译的Opencv库

首先可以下代码本地编译,如果不想这么麻烦,可以从这里下载:github-huihut/OpenCV-MinGW-Build

如何将OpenCV集成到Qt的工程

我是在windows下创建的Cmake类型的Qt工程。

添加头文件

解压上面下载的Opencv库的包。将include\opencv2目录复制到自己的QT源码目录下
在这里插入图片描述

然后在“Header Files”菜单右击,点“Add Existing Directory”, 选择刚刚复制过来的opencv2目录。
在这里插入图片描述
然后在CmakeLists.txt中添加opencv2目录的父目录:

target_include_directories (TextFinder PRIVATE ./sdk/inc)
添加库

在解压opencv后找到x64\mingw\bin目录,复制需要的dll模块到自己的工程下,如果没有特别需要,复制三个最常用的就够了。我是复制到我的工程下的sdk目录,复制后如下:
在这里插入图片描述
然后在CmakeLists.txt中添加这三个dll的父目录:

target_link_directories(TextFinder PRIVATE ./sdk/)

VS版本的OpenCV预编译库如何下载

我没用,这里仅仅记录下。下载地址在:
https://opencv.org/releases/

选择windows版下载
在这里插入图片描述

解压开就有一个build目录,下面有一个opencv_world490.dll。
这个是包含了所有opencv模块的单一库,你需要的就是它。

参考资料Cmake

MinGW编译的Opencv库下载地址:github-huihut/OpenCV-MinGW-Build

mingw如何链接vs方式编译生成的动态库?

How to setup Qt and openCV on Windows

Windows上Qt配置OpenCV(最简单版本无需自己编译-避坑必看)

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到