简述
距离上一次写博客笔记已经有很长一段时间了,看来没有坚持下来啊,这次写博客主要是记录一下QT5上调用Opencv2.4.9时的过程。
之前一直使用VS进行Opencv的编写,感觉还可以,不过最近用到了QT上调用Opencv,之前在坑里躺了一下,无奈所以写了一下笔记。
备注:这次使用的QT5为MSVC编译器的(微软的VC编译器),如果你使用了MinGW(MingGW是指是Minimalist GNU on Windows的缩写),这就要注意了要使用MinGW重新编译一下opencv,否则下面的笔记是不可以进行使用的哦,下面的笔记使用的是自带MSVC的QT(VS已经把opencv默认编译好了),不过MSVC版本的QT,进行debug时,会提示没有设置调试器,这个需要去微软官网下载WinSDKDebuggingTools。
过程
1、QT上设置
QT上的pro文件里面需要指明文件路径,我的包含路径如下:
INCLUDEPATH += D:\opencv\build\include \
D:\opencv\build\include\opencv \
D:\opencv\build\include\opencv2
注意路径哦,opencv安装的路径也要添加到系统path变量里面哦!
然后添加包含的动态链接库,如下:
CONFIG(release,debug|release)
{
LIBS += D:\opencv\build\x86\vc10\lib\opencv_*.lib
}
注意上面添加的(注意”\”),上面只添加了release,当然后面加一个else还可以config一个debug,我这里就没有弄了
运行时当然要选择使用release模式了。切记要运行前,一定要使用一下qmake构建一下哦(qmake前可以使用先清理一下哦)!!!
2、QT显示一张图片
有了上面的设置,现在工程里面可以添加头文件:
#include "opencv.hpp"
如果前面没有配置成功,这个头文件加入后会出现一大堆头文件找不到的提示:
D:\opencv\build\include\opencv2\opencv.hpp:46: error: C1083: 无法打开包括文件:“opencv2/core/core_c.h”: No such file or directory
没有配置对会出一大堆问题,所以一定要检查好。
现在可以使用如下代码进行测试:
QString fileName=QFileDialog::getOpenFileName(this,tr("Open Image"),".",tr("Image File(*.png *.jpg *.jpeg *.bmp)"));
Mat image = cv::imread(fileName.toLatin1().data());
imshow("image",image);
如果出现了显示图片的窗口,恭喜配置ok了,如果没有请先确认一下路径配置是否ok哦!