QT内使用OpenCV
来源:互联网 发布:小基数减肥 知乎 编辑:程序博客网 时间:2024/05/16 11:33
在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:关闭当前工程后,再次打开又无法识别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.创建qt工程,更改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.a
8.在工程内显示图像示例。
#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
- QT内使用OpenCV
- 在Ubuntu下的QT内使用Opencv
- QT上使用OpenCV
- Qt 下使用OpenCV
- Qt下使用opencv库
- OpenCv在Qt中的使用
- OpenCv在Qt中的使用
- Qt中使用OpenCV库
- opencv在Qt中的使用
- 使用Qt创建OpenCV项目
- qt中使用opencv库
- Qt + VS2010 下使用Opencv
- QT下使用opencv环境
- QT内label控件通过opencv显示图像
- QT内label控件通过opencv显示图像
- Python内使用OpenCV显示图像
- 在Qt Creator中使用Opencv 2.3
- 在Qt 中如何使用OpenCV库
- Redirect routing
- 词频统计
- shell中用unset加变量名,可以将该变量删除
- 浅谈Objective-C中的继承
- 自己家用电脑做网站服务器,解决动态IP、无公网IP、80端口被封、HTTP被屏蔽
- QT内使用OpenCV
- SITF 学习
- 【线性表】最常用的数据结构:线性表
- 《大话设计模式》—— 读后感(20)想走?可以!先买票——迭代器模式
- shell中,用set命令可显示全部的变量(包括环境变量和自定义变量),env只显示环境变量
- Android OnScrollListener
- 攻略
- 在win8.1 64位系统+cocos2d-x2.2.3下搭建android交叉编译环境
- PAT 1016. 部分A+B