打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt5中进行OpenCV开发教程
userphoto

2013.11.04

关注

Qt中进行OpenCV开发:
1)首先新建一个工程,在.pro工程文件中进行配置:添加OpenCV的头文件目录和库文件路径,具体如下(根据自己OpenCV的安装路径设置)




1 INCLUDEPATH += C:\OpenCV2.3.1\build\include 2    C:\OpenCV2.3.1\build\include\opencv  3    C:\OpenCV2.3.1\build\include\opencv24 5 LIBS += C:\OpenCV2.3.1\build\x86\vc9\lib\opencv_highgui231.lib 6     C:\OpenCV2.3.1\build\x86\vc9\lib\opencv_core231.lib  7     C:\OpenCV2.3.1\build\x86\vc9\lib\opencv_imgproc231.lib



 


2)以下是一个具体的简单实例——在自定义的Widget中显示以张图片,源码如下:


//------widget.h 




 1 #ifndef WIDGET_H 2 #define WIDGET_H 3  4 #include <QWidget> 5 #include <QImage> 6 #include <opencv.hpp> 7  8 class Widget : public QWidget 9 {10     Q_OBJECT11     12 public:13     Widget(IplImage *img,QWidget *parent = 0);14     ~Widget();15 protected:16     void paintEvent(QPaintEvent *);17 private:18     IplImage *iplImg;19     QImage *qImg;20 };21 22 #endif // WIDGET_H



//------widget.cpp


 




 1 #include "widget.h" 2 #include <QPainter> 3 Widget::Widget(IplImage *img, QWidget *parent) 4     : QWidget(parent) 5 { 6     qImg = new QImage(QSize(img->width,img->height),QImage::Format_RGB888); 7     iplImg = cvCreateImageHeader(cvSize(img->width,img->height),8,3); 8     iplImg->imageData = (char *)qImg->bits(); 9 10     if(img->origin==IPL_ORIGIN_TL)11     {12         cvCopy(img,iplImg,0);13     }14     else15     {16         cvFlip(img,iplImg,0);17     }18     cvCvtColor(iplImg,iplImg,CV_BGR2RGB);19     resize(img->width,img->height);20 }21 22 void Widget::paintEvent(QPaintEvent *)23 {24     QPainter painter(this);25     painter.drawImage(QPoint(0,0),*qImg);26 }27 28 29 Widget::~Widget()30 {31     cvReleaseImage(&iplImg);32     delete qImg;33 }



 


//----main.cpp




 1 #include "widget.h" 2 #include <QApplication> 3  4 int main(int argc, char *argv[]) 5 { 6     QApplication a(argc, argv); 7  8     IplImage *img = cvLoadImage("test.jpg",1); 9 10     if(img)11     {12         Widget *w = new Widget(img);13         w->show();14     }15 16     int re =  a.exec();17     cvReleaseImage(&img);18 19 20     return re;21 }





3)运行结构如下


 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
cv::Mat与iplimage类型如何进行互相转换
opencv2.3.1中使用CvvImage
OpenCV中Mat与IplImage和CvMat类型之间的相互转换
Linux下使用QT调用opencv读取摄像头视频 调试心得
OpenCV实例:对实时视频做人脸检测
OpenCV
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服