本人参照的安装教程:https://blog.csdn.net/sinat_36264666/article/details/73200739
但是在操作的时候又有些不同
1——————————————————————————————————
我的安装路径为D:\QT\QT5.5.1\opencv\open_3.3.1_build
编译生成的include/opencv和include/opencv2的路径为D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\include\opencv和opencv2
编译生成的lib在D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\x86\mingw\lib
因此最后在QT的pro文件的添加的内容为:
INCLUDEPATH+= D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\include\opencv
INCLUDEPATH+= D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\include\opencv2
INCLUDEPATH+= D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\include
LIBS += D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\x86\mingw\lib\libopencv_*.a
而他的为:
INCLUDEPATH+=D:\DiyProgram\OpenCV\opencv\build\include
D:\DiyProgram\OpenCV\opencv\build\include\opencv
D:\DiyProgram\OpenCV\opencv\build\include\opencv2
LIBS += D:\DiyProgram\buildOpencv\lib\libopencv_*.a
2——————————————————————————————————
编译生成后的bin文件一定要tian添加到环境变量:D:\QT\QT5.5.1\opencv\open_3.3.1_build\install\x86\mingw\bin
错误 1 ——————————————————————————————————————
在操作过程中遇到一个错误:[ 32%] Building RC object modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj
可以参考:https://blog.csdn.net/weixin_42005205/article/details/81000017
错误 2 ——————————————————————————————————————
运行程序后一直出现:程序异常结束
但是你编译代码的时候却没有错,那么很有可能就是你的动态链接库没有加载到系统的环境中去。
解决办法:
1、首先确保你把你qt编译器下的所有bin目录添加到了系统的path环境中;
2、把你编译好的opencv目录下的bin目录添加到系统的path环境中;
3、这个时候重新编译你的代码,如果不行,那就关机再试一次,绝对可以的,只要你是按照我的步骤来的。(我就是关机解决的)
附带我的qt opencv mingw环境下的配置过程。opencv+mingw配置
错误 3 ——————————————————————————————————————
程序出现错误:OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow
说是什么内存错误,其实对于我这错误是照片文件路径没有正确指定。
错误路径:D:\QT\project\opencv_qtcreaor\test\test\image.png
正确路径:D:\\QT\\project\\opencv_qtcreaor\\test\\test\\image.png
就是要加反斜杠
程序:
#include "widget.h"
#include <QApplication>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
Mat image;
image = imread("D:\\QT\\project\\opencv_qtcreaor\\test\\test\\image.png");
namedWindow("显示");
imshow("显示",image);
waitKey(0); //图片显示出来后要按一下按键,不然不能正确退出
return a.exec();
}
运行结果: