QT+OpenCV配置
- 1 下载CMake
- 2 安装CMake
- 3 下载OPenCV
- 4 配置环境变量
- 4.1 配置QT环境变量
- 4.2 配置CMake环境变量
- 4.3 重启电脑生效
- 5 CMake编译OPenCV
- 5.1 解决报错
- 6 测试
1 下载CMake
链接:https://cmake.org/download/
2 安装CMake
3 下载OPenCV
链接:https://opencv.org/
新建两个文件:
opencv_source_4.7.0:存放OPenCV的源码
opencv_build_4.7.0:存放OPenCV编译出来的东西
4 配置环境变量
4.1 配置QT环境变量
将你使用的编译器加入到环境变量中,我使用的是mingw 64bit,步骤如下:
- 找到QT编译器路径
- 加入到环境变量中
4.2 配置CMake环境变量
4.3 重启电脑生效
5 CMake编译OPenCV
Compilers路径
C:D:\qt\Tools\mingw810_64\bin\gcc.exe
C++:D:\qt\Tools\mingw810_64\bin\g++.exe
5.1 解决报错
CMAKE_MAKE_PROGRAM
的value修改为对用的makeD:/qt/Tools/mingw810_64/bin/mingw32-make.exe
- Configuring done之后,还会出现报错。勾选WITH_OPENGL和WITH_QT
- 查看报错内容发现ffmpge下载报错,如下图:
解决方法:
进入网址:https://github.com/opencv/opencv_3rdparty/
点击readme,输入ffmpeg,跟选择对应的版本:
(在OpenCV源码路径G:\opencv_source_4.7.0\opencv\sources\3rdparty\ffmpeg下的ffmpeg.cmake文件可以看到该OpenCV版本需要的ffmpeg版本,一般在该文件的第一行)
下载后解压,进入ffmpeg文件夹:
将opencv_videoio_ffmpeg_64.dll、opencv_videoio_ffmpeg.dll、ffmpeg_version.cmake三个文件拷贝到:G:\opencv_source_4.7.0\opencv\sources\.cache\ffmpeg
依次将下载的三个文件的文件名改为对应的这三个文件名即可。(文件名的前半截是该文件的hash码,不能复制错了)
点击configure,依然会报错:
4. 修改以下内容
此时应该没错误了。
点击configure,然后点击generate
打开生成目录:
将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell,输入 D:/qt/Tools/mingw810_64/bin/mingw32-make.exe
会编译报错如下:
- mingw32-make: *** [Makefile:165: all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:1878: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....
[ 33%] Built target IlmImf
mingw32-make: *** [Makefile:165: all] Error 2
解决办法:
cmake界面按钮: add Entry —>>> BOOL —>>> OPENCV_VS_VERSIONINFO_SKIP 打钩
出错了把之前的make clean掉
安装 :D:/qt/Tools/mingw810_64/bin/mingw32-make.exe install
加入环境变量:G:\opencv_build_4.7.0\install\x64\mingw\bin
6 测试
- pro文件中加入
INCLUDEPATH += G:\opencv_build_4.7.0\install\include
LIBS += G:\opencv_build_4.7.0\lib\libopencv_*.a
- MainWindow中加入
Mat image=imread("1.png",1);//一定要使用绝对路径,其他可以回报错
namedWindow( "Display window", WINDOW_AUTOSIZE );
imshow( "Display window", image );