Qt配置OpenCV(MinGW)

目录

1.准备工具

1.1 Qt:5.14.2 64位

1.2 CMake:3.25.1

1.3 OpencCV:4.4.0

2.配置环境变量

2.1 配置Qt中minGW的环境变量

2.2配置CMake的环境变量

3.  CMake编译OpenCV

4.将编译完成后的Opencv的bin目录加入环境变量

5.OpenCV编译出现的错误及解决

6. Qt代码测试

注意注意:


OpenCV对于Qt C++的支持有两种编译方式MinGW和MSVC。

MSVC方式较简单,而MinGW方式需要通过CMake对OpenCV源码进行编译,下面介绍MinGW编译器配置方式。

MSVC编译方式见我的另一篇博客:

Qt配置OpenCV(MSVC编译)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43855258/article/details/134770197?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22134770197%22%2C%22source%22%3A%22qq_43855258%22%7D


1.准备工具

1.1 Qt:5.14.2 64位

1.2 CMake:3.25.1

        官网链接:https://cmake.org/

         PS:注意勾选添加环境路径后,系统自动将其路径添加至系统环境变量Path中 。

1.3 OpencCV:4.4.0

        官网链接:https://opencv.org/releases/

        PS: 使用迅雷下载会快很多!

        step1.下载完成后得到如下exe文件,实际是一个压缩文件,点击运行,解压至自定义路径,如下:

         解压缩后的文件如下:

         step2.新建一个opencv_newbuild文件,用于存放后续Opencv编译输出文件,如下:

2.配置环境变量

2.1 配置Qt中minGW的环境变量

D:\QT\Tools\mingw730_64\bin

2.2配置CMake的环境变量

 安装CMake过程中选择自动添加,or手动添加。

3.  CMake编译OpenCV

step1.打开CMake,选择源目录、输出目录,点击configure.

 step2.选择你的编译器类型-“MinGW Makefile”,同时选择“Specify native compilers".

 step3.设置C、C++编译器:选择Qt中"gcc.exe"和”g++.exe"路径。

 step4. 解决:由于网络下载失败问题

 打开CMakeDownloadLog.txt文件,如下

 用浏览器打开上述网址,可以使用迅雷/VPN下载上面的2个文件,然后将下载好的文件放在对应文件夹下。

step5.检查Qt5、Qt5Core、Qt5Gui等目录是否正确

       ( 可能我在此之前配置过Python的Opencv,导致我这里的Qt5的目录如下:)

        修改为: 

step5. Add Entry

Set QT_MAKE_EXECUTABLE to D:\Qt\5.14.2\mingw73_64\bin\qmake.exe 
Set OPENCV_VS_VERSIONINFO_SKIP=1

step6.勾选 "WITH_OPENGL", "WITH_OPENMP", "WITH_QT",”BUILD_opencv_world";

         取消勾选“WITH_OPENCL_D3D11_VNV","OPENCV_ENABLE_ALLOCATOR_STARTS"

         将CMAKE_VBUILD_TYPE"修改为release

         点击configure-generate.

 step7.查看CPU的核心数与线程数:打开Dos窗口,输入"wmic","cpu get *",

        

         右滑,可找到cpu的核心数(4),线程数(8)

 step8.编译,Dos窗口输入

  • mingw32 -make -j 8(这里的“8”是cpu线程数)

        等待,有错误的话,就去查一查,修改一下CMake里面的设置。(后文有给出我遇到的一个问题及解决方案,并在上述步骤中完成修改了)

  • mingw32-make install

        (这一步很快)

4.将编译完成后的Opencv的bin目录加入环境变量

5.OpenCV编译出现的错误及解决

Error

D:/QT/Tools/mingw730_64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `CMakeFiles\opencv_world.dir/objects.a(vs_version.rc.obj)' is incompatible with i386:x86-64 output
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [modules\world\CMakeFiles\opencv_world.dir\build.make:8976: bin/libopencv_world440.dll] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:2237: modules/world/CMakeFiles/opencv_world.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

解决方案:

        cmake界面按钮: add Entry --->>> BOOL --->>> OPENCV_VS_VERSIONINFO_SKIP  打钩

6. Qt代码测试

        新建Qt项目,导入编译好的OpenCV库文件,实现OpenCV读取图像与显示。

step1.新建Qt Widgets Application项目(PS:选择minGW64编译器)

step2.添加库-外部库-设置库文件和包含路径

OpenCV库添加成功后,pro文件中出现以下代码

 step3. 添加头文件,读取图片显示图片

 参考:

How to setup Qt and openCV on Windows - Qt Wikiicon-default.png?t=N7T8https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_WindowsQt配置opencv环境 | 木风可可 (sorrowfeng.top)icon-default.png?t=N7T8https://www.sorrowfeng.top/qt-with-opencv/OpenCV4 + Qt5 开发环境配置合集(C++/Python)_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1Za4y1v7ra/?spm_id_from=333.337.search-card.all.click&vd_source=a2b7029e58d3c675b2d4ea72e64ea4f5

注意注意:

你出现下面的问题了吗?我找了好久问题,最后还是在求助了老师才解决了问题。

 cannot find -llibopencv_world440.dlld

        那是因为上面的步骤只生成release模式的opencv文件,没有debug模式下的!但是我们通过Qt添加外部库的方式添加Opencv的库和路径是有debug模式的;如下图,后缀“.dlld” 就表示debug模式的文件,我们没有啊,所以就报错啦。

         所以我们需要在release模式下运行,这样就不会报错啦,后面再找找怎么编译debug的opencv文件。

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用内容,配置Qt使用OpenCV的步骤如下: 1. 首先,需要在.pro文件中添加OpenCV的头文件和库文件路径。例如,在INCLUDEPATH中添加头文件路径,LIBS中添加库文件路径。注意,路径应该使用反斜杠而不是斜杠。 2. 头文件路径可以通过引用\[1\]中的示例进行设置,例如:INCLUDEPATH += H:\Qt\opencv3.4.0\OpenCV-MinGW-Build-OpenCV-3.4.5\include。 3. 库文件路径也可以通过引用\[1\]中的示例进行设置,例如:LIBS += H:\Qt\opencv3.4.0\OpenCV-MinGW-Build-OpenCV-3.4.5\x86\mingw\bin\libopencv_*.dll。 4. 另外,还可以在Qt的项目设置中指定头文件和库文件的路径。例如,可以在项目设置中的"头文件目录"中添加头文件路径,"库目录"中添加库文件路径。这可以参考引用\[2\]中的示例。 5. 如果在编译过程中遇到问题,可以根据引用\[3\]中的解决方法进行修复。例如,修改代码中的nullptr为null,或者修改特定文件中的代码。 总结起来,配置Qt使用OpenCV的步骤包括添加头文件和库文件路径,并根据需要进行一些修复。希望这些信息对您有帮助。 #### 引用[.reference_title] - *1* [Qt配置OpenCV教程,无需复杂的编译过程,(详细版)](https://blog.csdn.net/qq_42027706/article/details/122210273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【QtQt配置OpenCV](https://blog.csdn.net/qq_44859533/article/details/126708386)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值