QT creator+opencv+opencv_contrib编译配置和使用
一、材料1、系统Win7 64位2、qt-opensource-windows-x86-5.9.5.exe 下载地址3、opencv3.4.0 下载地址 选择下载source code(zip)格式4、opencv_contrib3.4.0 下载地址 选择下载zip格式5、cmake-3.13.0-rc3-win64-x64.msi 下载地址注:文章使用opencv3...
一、材料
1、系统Win7 64位
2、qt-opensource-windows-x86-5.9.5.exe 下载地址
3、opencv3.4.0 下载地址
选择下载source code(zip)格式
4、opencv_contrib3.4.0 下载地址
选择下载zip格式
5、cmake-3.13.0-rc3-win64-x64.msi 下载地址
注:文章使用opencv3.4.1和opencv_contrib3.4.1也是一次完成
二、安装
(注:本文一切安装都是安装在E盘根目录下)
1、QT安装
QT直接安装就行,安装路径中不要有中文和空格,安装完成后将两个bin路径添加进入系统环境变量。
E:\Qt\5.9.5\mingw53_32\bin;
E:\Qt\Tools\mingw530_32\bin;
2、opencv安装
opencv3.4.0和opencv_contrib3.4.0直接解压出来即可。
3、Cmake安装
直接一路下一步即可(安装在E盘)。
安装完成后将bin路径添加进入系统环境变量。
E:\cmake-3.13.0-rc3-win64-x64\bin
三、编译opencv
使用cmake编译opencv,第一个路径是opencv的源码,第二个路径是你要保存编译库的路径(在opencv3.4.0目录下新建一个qtbuild文件夹)
最重要的是:
①勾选 WITH_QT 和 WITH_OPENGL 和 ENABLE_C××11,
②不勾选 WITH_IPP、ENABLE_PRECOMPILED_HEADERS、BUILD_opencv_python_bingings_generator、WITH_MATLAB
③将OPENCV_EXTRA_MODULES_PATH设为
E:\opencv_contrib-3.4.0\opencv_contrib-3.4.0\modules
④将E:\opencv-3.4.0\opencv-3.4.0\modules\videoio\src
中的cap_dshow.cpp文件中 #include “DShow.h” 前面加一句
#define STR_NO_DEPRECATE
⑤点击Configure,如果还有红色再点击Configure直到变白,点击Generate按钮
在完成以上所有步骤之后,WIN+R打开cmd,进入生成的目录中。输入“mingw32-make”命令,按回车进行编译。编译达到100%后再输入“mingw32-make install”命令,按回车。 编译完成后就会在qtbuild下的install文件夹中生成编译好的库文件。
上面讲了那么多,最终需要的就是一个install文件夹,直接将install文件夹拷贝到QT文件夹里面就行,
将x86文件夹下面bin路径加到系统path变量中,例如我的bin文件路径为:E:\Qt\install\x86\mingw\bin
四、配置Qt中的OpenCV
1、打开Qt,主界面如下图。然后点击【New Project】
2、选择【Qt Widgets Application】,然后点【Choose】
3、创建项目名称,选择创建路径,然后点【下一步】
4、保持默认,点【下一步】
5、保持默认,点【下一步】
6、保持默认,点【完成】
7、在 .pro 文件中的底部,添加如下内容:
INCLUDEPATH += E:\Qt\install\include
INCLUDEPATH += E:\Qt\install\include\opencv
INCLUDEPATH += E:\Qt\install\include\opencv2
LIBS += E:\Qt\install\x86\mingw\lib\libopencv_*.a
8、到此为止,qt和opencv配置成功。以后在qt中编写opencv程序,同理,只要将上一步的内容添加到.pro文件中。(每次新建新项目时,都只要添加该内容就行)
五、测试
添加如下代码,然后编译运行。
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image;
image=imread("F:\\QtTemp\\untitled1\\Jellyfish.jpg");//括号里更改为自己图像的路径
namedWindow("显示",0);
imshow("显示",image);
waitKey(0);
return 0;
}
六、参考文章
这两位博主写的不错:
https://mlh.app/2019/02/21/fcc909b53245c3ec05369526ab66cf72.html
https://blog.csdn.net/sinat_36264666/article/details/73200739
基本上不会报错了,如果还有报错请参考:
https://blog.csdn.net/qq_40560275/article/details/83118088
https://segmentfault.com/a/1190000014284086
https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/
更多推荐
所有评论(0)