下午弄到一个程序是在Qt下配置OpenCV,看似很简单的东西竟然也折腾了我不少时间。
还好有这篇博客,解了我的燃眉之急
http://blog.csdn.net/skelking/article/details/43735971
首先在前面说明,这篇文章我不讲MinGW版本的Qt配置opencv,这个配置比较麻烦,需要重新Cmake OpenCV什么的,很复杂
如果你想找那方面的资料,对不起,耽误你时间了。
我的版本信息已经给出
Qt5.5.1( MSVC2010 32位)
OpenCV2.49
win7
配置过程主要编辑Qt工程的.pro文件,因为Qt是通过pro文件的改动来配置编译时需要包含的路径和库文件。
找了许久原因,最后才知道是这个原因(这一步很关键,如果你的OpenCV路径比较深)
这里新建了一个文件夹opencv_build在D盘,至于为什么要新建一个,因为一开始想直接调用opencv安装目录下面的文件,可能是文件夹层数过多倒是路径输入总是报错,所以干脆在根目录新建了一个文件夹包含了opencv安装目录build文件下的下面这些内容:
下面就是编辑.pro文件了,Qt中新建一个控制台工程,打开.pro文件,在末尾添加下面这些代码:
下面就是编辑.pro文件了,Qt中新建一个控制台工程,打开.pro文件,在末尾添加下面这些代码:
方便复制:
INCLUDEPATH += D:\opencv_build\include
INCLUDEPATH += D:\opencv_build\include\opencv
INCLUDEPATH += D:\opencv_build\include\opencv2
LIBS += -LD:\opencv_build\x86\vc10\lib\
-lopencv_calib3d249d \
-lopencv_contrib249d \
-lopencv_core249d \
-lopencv_features2d249d \
-lopencv_flann249d \
-lopencv_gpu249d \
-lopencv_highgui249d \
-lopencv_imgproc249d \
-lopencv_legacy249d \
-lopencv_ml249d \
-lopencv_nonfree249d \
-lopencv_objdetect249d \
-lopencv_ocl249d \
-lopencv_photo249d \
-lopencv_stitching249d \
-lopencv_superres249d \
-lopencv_ts249d \
-lopencv_video249d \
-lopencv_videostab249d
每次编辑.pro文件都记得要qmake一次。最后在main文件中输入下面的代码验证我们的配置是否正确。注意这样配置完就只能在debug状态下运行,如果想release状态下运行:
需要这样配置:
我截的图,自己相应改改就好了
main函数代码
#include <QCoreApplication>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("C:/Users/ltc/Desktop/temppicture/benghuai3.jpg");
if(img.empty())
{
fprintf(stderr,"Error: load image failed.");
return -1;
}
namedWindow("image",CV_WINDOW_AUTOSIZE);
imshow("image",img);
waitKey();
return 0;
}
图片能够显示:
binggo