Qt5+OpenCV4 环境搭建踩坑笔记:
一、加入系统环境变量的分别有:
我的安装目录位于:E:\development\opencv4.0:
1、E:\development\opencv4.0\build\bin
2、E:\development\opencv4.0\build\x64\vc14\bin (vc14对应的是VS2015)
3、E:\development\opencv4.0\build\x64\vc15\bin (vc15对应的是VS2017)
二、新建Qt Console工程后需要把main里面的事件循环删除:
#include <QCoreApplication>
int main(int argc, char *argv[])
{
// QCoreApplication a(argc, argv);
// return a.exec();
// TODO
return 0;
}
三、修改.pro文件,加入对应的头文件目录和库文件:
#by hukaiming
INCLUDEPATH += E:\development\opencv4.0\build\include\
E:\development\opencv4.0\build\
CONFIG(debug, debug|release) {
#debug模式用这个
LIBS += E:\development\opencv4.0\build\x64\vc15\lib\opencv_world400d.lib
}else{
#release模式用这个
LIBS += E:\development\opencv4.0\build\x64\vc15\lib\opencv_world400.lib
}
需要注意的是:
1、头文件目录使用的是 INCLUDEPATH += 而不是 HEADERS += 否则就会出现包含不了头文件的错误。
2、如果Qt工程选择的是MSVC2015就需要加载vc14的库文件,如果是MSVC2017的套件,就需要加载vc15的库文件。我这里使用的是MSVC2017套件,因此加载vc15的库:
四、测试一下:
#include <QCoreApplication>
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char *argv[])
{
//加载一张图片并显示
Mat srcImg = imread("Lena.png");
imshow("input", srcImg);
//将图片拆分为B/G/R 3个通道并显示
Mat vec[3];
split(srcImg, vec);
imshow("B", vec[0]);
imshow("G", vec[1]);
imshow("R", vec[2]);
//将拆分的通道合并显示
Mat out;
merge(vec, 3, out);
imshow("out", out);
waitKey(0);
return 0;
}
执行结果:
需要注意的是:如果图片地址不是绝对路径,图片则需要放置到编译文件夹之内(如图所示)才能直接正确运行,否则会报内存错误。
至此,Qt5+OpenCV4 开发环境搭建完成。
☆☆☆如有纰或学习交流,敬请指正~QQ:714627366☆☆☆