QT内使用OpenCV

在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\include

LIBS+=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.a

8.在project内显示图像演示样例。

#include <QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
    Mat image;
    image=imread("e:/a.jpg");
    imshow("li",image);
    waitKey();
    return 0;
}

9.查看效果。


===================================================

參考资料:

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

posted on 2019-03-29 11:09  xfgnongmin  阅读(255)  评论(0编辑  收藏  举报

导航