三、Qt配置opencv环境(详细,简易)


文章目录

  • 三、Qt配置opencv环境(详细,简易)
  • 3.1 软件准备
  • 3.2 Qt安装
  • 3.3 cmake安装
  • 3.4 opencv安装
  • 3.5 cmake配置opencv
  • 3.6 编译安装opencv
  • 3.7 Qt测试opencv代码
  • 3.8 编译常见错误


软件

网盘链接

Qt5.13.2

链接:https://pan.baidu.com/s/12koMqoh1UauwgFCC_gmn5Q 提取码:qmlb

cmake3.11.1

同上

Opencv3.4.9

同上

路径请不要用中文! 路径请不要用中文! 路径请不要用中文!

3.1 软件准备

  1. Qt5 (Qt官网下载https://download.qt.io/archive/qt/):选择版本:5.13.2
  2. cmake(cmake官网下载https://cmake.org/files/):选择版本:3.11.1(不做版本要求)
  3. OpenCV(OpenCV官网下载https://opencv.org/releases):选择版本:3.4.9

3.2 Qt安装

  1. 双击运行qt-opensource-windows-x86-5.13.2.exe程序,
  2. 填写邮箱密码(如果没有邮箱密码,可以先去Qt官网注册一个)
  3. 选择安装目录:(不要有中文
  4. Qt opencv 找不到 qt安装opencv_qt

  5. 选择Qt安装组件:
Qt 5.13.2
	MinGW 7.3.0 64-bit
	Sources
Developer and Designer Tools
	MinGW 7.3.0 64-bit
  1. 其他默认安装
  2. 添加环境变量到系统:在系统的Path中新增如下两条环境变量(Qt安装路径按自己实际修改)
  3. Qt opencv 找不到 qt安装opencv_Qt opencv 找不到_02

3.3 cmake安装

  1. cmake-3.11.1-win64-x64.zip解压到D盘路径
  2. 添加环境变量到系统
  3. Qt opencv 找不到 qt安装opencv_计算机视觉_03

3.4 opencv安装

  1. 运行 opencv-3.4.9-vc14_vc15.exe 程序(其本质是一个压缩包,运行是对其解压)
  2. 解压时填写路径,(我解压到D盘,所以填写D:\)
  3. 会在 D:\opencv 生成如下源码:其中build为编译后Windows环境下编译好的可执行文件,sources为未编译过的源代码。
  4. Qt opencv 找不到 qt安装opencv_计算机视觉_04

build文件只能在vs中使用,不能在Qt中使用,如果要在Qt中使用Opencv,需要从新编译opencv源码

所以下面我们通过cmake重新编译opencv源码

3.5 cmake配置opencv

  1. 打开D:\cmake-3.11.1-win64-x64\bin\cmake-gui.exe
  2. 填写信息
Where is the source code:选择OpenCV解压的源文件文件夹位置;
Where to build the binaries:选择自定义的空文件夹用于保存生成对象 (不要有中文)

Qt opencv 找不到 qt安装opencv_计算机视觉_05

  1. 填写完成,点击左下角Configure按钮
  2. 选择MinGW编译器
  3. Qt opencv 找不到 qt安装opencv_opencv_06

  4. 点击NEXT按钮,选择Qt里面的gcc和g++编译器路径(点击…去重新选择一下,不然可能会报错)
  5. Qt opencv 找不到 qt安装opencv_Qt opencv 找不到_07

  6. 点击finish后即会开始配置,配置需要几分钟左右,等待配置结束出现如下界面
  7. Qt opencv 找不到 qt安装opencv_opencv_08

  8. 修改配置如下:
ENABLE
	ENABLE_CXX11(选中)
WITH
	WITH_OPENGL(选中)
	WITH_QT(选中) 
	WITH_IPP(不选)
  1. 修改完点击Configure,配置完成会出现如下界面
  2. Qt opencv 找不到 qt安装opencv_qt_09

  3. 再次点击Configure,配置完成会出现如下界面:
  4. Qt opencv 找不到 qt安装opencv_opencv_10

  5. 如下图所示,去掉CMAKE的Debug,修改为如下
CMAKE
	CMAKE_CONFIGURATION_TYPES    Release
  1. 修改完再次点击Configure:
  2. 点击Generate,等待配置结束
  3. Qt opencv 找不到 qt安装opencv_计算机视觉_11

3.6 编译安装opencv

  1. 打开CMD窗口,进入生成OpenCV目标文件的文件夹(window10可以使用powershell)
cd D:\opencv\install

Qt opencv 找不到 qt安装opencv_opencv_12

  1. 使用下面命令开始编译opencv,需要20分钟左右

mingw32-make -j 8

其中, -j 8 代表多核编译

注意:编译过程中如果出现错误,可先看后面常见错误章节。

  1. 编译完成
  2. Qt opencv 找不到 qt安装opencv_qt_13

  3. 编译完成之后,输入如下指令安装

mingw32-make install

  1. 安装完成如下
  2. Qt opencv 找不到 qt安装opencv_计算机视觉_14

  3. 编译完会在,D:\opencv\install\中又生成一个install文件夹
  4. Qt opencv 找不到 qt安装opencv_c++_15

  5. 将编译生成的路径D:\opencv\install\install\x64\mingw\bin添加到环境变量中(Qt才能调用到opencv)
  6. Qt opencv 找不到 qt安装opencv_Qt opencv 找不到_16

3.7 Qt测试opencv代码

  1. 创建qt工程
  2. Qt opencv 找不到 qt安装opencv_Qt opencv 找不到_17

  3. 选择路径(一定不能是中文,否则qt报错)
  4. Qt opencv 找不到 qt安装opencv_计算机视觉_18

  5. 其他默认选择
  6. 在Qt工程的pro文件添加如下内容(路径根据自己实际修改)
#若将D:/opencv/install/install/include添加到环境变量,下面INCLUDEPATH这三行可以不写
INCLUDEPATH += D:/opencv/install/install/include/opencv \
            D:/opencv/install/install/include/opencv2  \
            D:/opencv/install/install/include

LIBS += -L D:/opencv/install/install/x64/mingw/lib/libopencv_*.a

#添加环境变量之后可以不使用绝对路径
#LIBS += -L libopencv_*.a

Qt opencv 找不到 qt安装opencv_qt_19

  1. 修改Qt工程的main.cpp文件如下,(注意自己图片路径)
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
    Mat img=imread("F:/add2.jpg"); //读入一张图片
    cvNamedWindow("test"); //创建一个名为"蜡笔小新"的显示窗口
    imshow("test", img);   //在窗口中显示图像
    waitKey(10000); //延时10000ms后关闭窗口
    return 0;
}

Qt opencv 找不到 qt安装opencv_qt_20

3.8 编译常见错误

1、在执行mingw32-make的时候出现如下错误

Qt opencv 找不到 qt安装opencv_c++_21

找到上图提醒的文件D:\opencvSource\modules\core\CMakeFiles\opencv_core.dir\build.make

打开build.make,定位到1339行

修改"D:\Program Files\mingw64\bin\windres.exe"

为 “D:\Qt\Tools\mingw530_32\bin\windres.exe”(自己Qt安装目录下的TooLs\mingw530_32\bin\windres.exe)

2、该错误与上面相似,

Qt opencv 找不到 qt安装opencv_计算机视觉_22

找到上图提醒的文件D:\opencvSource\modules\imgproc\CMakeFiles\opencv_imgproc.dir\build.make

打开build.make,定位到1166行

修改"D:\Program Files\mingw64\bin\windres.exe"

为 “D:\Qt\Tools\mingw530_32\bin\windres.exe”(自己Qt安装目录下的TooLs\mingw530_32\bin\windres.exe)

3、错误如下图

Qt opencv 找不到 qt安装opencv_qt_23

解决方法:在cmake里面找到OPENCV_ENABLE_ALLOCATOR_STATS或者在search里面搜索,然后把后面的勾选去掉,接着Configure和Generate后,接着在cmd窗口中mingw32-make即可继续编译

4、错误如下图

Qt opencv 找不到 qt安装opencv_qt_24

在**opencv源码**中找到提示错误的C:\Users\29017\Downloads\Compressed\opencv-3.4.8\modules\videoio\src\ cap_dshow.cpp 文件

打开cap_dshow.cpp

在#include "precomp.hpp"下面添加

#define STRSAFE_NO_DEPRECATE

5、错误如下图

Qt opencv 找不到 qt安装opencv_计算机视觉_25

在**opencv源码**中找到提示错误的modules/photo/CMakeFiles/opencv_test_photo.dir/test/test_hdr.cpp文件

在#include "test_precomp.hpp"下面添加

#include <sys/time.h>