在QT内使用Opencv,调试了好久总是出问题。
開始在pro文件内进行了opencv的配置,然后就是不能识别#include包括文件,后来不知道什么原因。奇妙地 能够识别包括了。
但是,新的问题出现了,不能够识别cv函数,后来发现不过不能识别opencv2.4函数,opencv1.0的函数还是能够识别的,使用IplImage能够正常显示图像。
后来不知道怎么回事,又奇妙地能够识别opencv2.4.9函数了,但是此时不能显示图像。显示问题“qt opencv error assertion failed size.widht>0 && size.height>0”。
百度。发现须要使用:
IplImage *pImg=cvLoadImage("e:/image/face1.bmp",1);Mat image(pImg);此时,能够正常显示图像。
仍存在问题:假设试图直接显示图像,使用代码:
cvLoadImage("a.jpg",1);
仍显示无法发现图像。
ps:关闭当前project后,再次打开又无法识别opencv函数了。
-------------------------------------------------------------------------------------------------
2014.5.18更新
opencv249,假设不进行编译。也是能够是执行opencv2.0曾经的函数的。但是opencv2.0的一些函数会无法执行,因此须要编译。
直接下载qt mingw版本号。然后使用cmake配合其自带的mingw进行编译。
注意:不须要自己下载mingw,qt自带的能够完毕。
几个问题:
1.第一次编译没有选择with_qt。一边看别人的资料,一边编译。编译成功了,才发现这个问题。又一次编译,就不行了。
后来又一次下载了qt,配置了路径才好。可能是由于路径没有配置,并且注意,为了避免出现故障,最好重新启动系统。
2.注意,须要配置完毕后最好使用Mat、IplImage分别測试一下。
我第一次就是总是不行。使用IplImage才发现不过不能识别Mat。
3.安装qt是要选择mingW。
4.imshow的标题无法正常显示(为乱码)已经解决。
5.文件须要使用绝对路径,相对路径仍旧不能识别。
路径的问题是由于没有注意区分工作路径、当前路径。找到编译文件,能够识别其特定的文件。
=================================================================================================
2014-5-21更新
在实验室机器上又一次配置安装步骤:
1.下载opencv并安装。当前最新版本号为249,直接使用的曾经下载的248版本号。
2.下载qt并安装。注意是mingw版本号。不须要vs版本号。
3.下载cmake,并对opencv的source文件进行编译。手动选择gcc、g++编译器。
配置好后。在生成前选择“with_QT"、"with_OPENGL".
4.进入cmd,到配置目标路径下执行Mingw32-make,此过程较长。须要半小时左右。
执行mingw32-make install,此过程较快。
5.复制opencv安装目下opencv/bulide/inlude文件夹到配置目标下。
6.加入目标文件夹/bin到系统path下。
7.创建qtproject,更改pro文件。
INCLUDEPATH+=e:\cv248\include\opencv\ e:\cv248\include\opencv2\ e:\cv248\includeLIBS+=e:\cv248\lib\libopencv_calib3d248.dll.a\ e:\cv248\lib\libopencv_contrib248.dll.a\ e:\cv248\lib\libopencv_core248.dll.a\ e:\cv248\lib\libopencv_features2d248.dll.a\ e:\cv248\lib\libopencv_flann248.dll.a\ e:\cv248\lib\libopencv_gpu248.dll.a\ e:\cv248\lib\libopencv_highgui248.dll.a\ e:\cv248\lib\libopencv_imgproc248.dll.a\ e:\cv248\lib\libopencv_legacy248.dll.a\ e:\cv248\lib\libopencv_ml248.dll.a\ e:\cv248\lib\libopencv_objdetect248.dll.a\ e:\cv248\lib\libopencv_video248.dll.a8.在project内显示图像演示样例。
#include9.查看效果。#include #include using namespace cv;int main(){ Mat image; image=imread("e:/a.jpg"); imshow("li",image); waitKey(); return 0;}
===================================================
參考资料:
1.openCV在VS2010配置完后。错误OpenCV Error: Assertion failed (size.width>0 && size.height>0)的解决方式
http://hi.baidu.com/meng_ling_hui/item/89294f0038e1c26dd45a11e2
2.OpenCV Error: Assertion Failed (size.width>0 && size.height>0) in unknown function
http://answers.opencv.org/question/18135/opencv-error-assertion-failed-sizewidth0/
3.QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
http://www.cnblogs.com/liu-jun/archive/2012/09/26/Jacky_Liu.html
4.[OpenCV] -- win7下配置OpenCV的Qt开发环境
http://blog.csdn.net/qiurisuixiang/article/details/8665278
5.win7上qt5.1.1 opencv2.4.7 cmake2.8.12.1环境搭建(关键在环境变量)
http://blog.csdn.net/jiebaoabcabc/article/details/17097765