Qt5开发:VS2015+Qt+Opencv程序

一、软件

        Window 8.1 64位

         QT5.6.2

        Visual Studil 2015

         opencv 3.2.0

二、环境变量与Qt、opencv 配置

       具体过程网上大把。

       环境变量:Qt\Qt5.6.2\5.6\msvc2015_64\bin和opencv\build\x64\vc14\bin。两个都要添加进去!

       Qt、opencv 配置:

 

 

 

 

 三、第一个图形界面程序

       3.1新建QT5.1工程

             配置完成后,用VS2010新建一个工程,选择QT5 Projects-》QT application,工程名为Qt5test

            

        一键Ok,直接Finish,工程就建立成功了。

 

  3.2 使用QT设计师设计界面以及链接信息/槽

        双击qt5test.ui,会弹出来Qt 设计师界面,拖两个按钮添加到界面中,然后双击修改按钮的名称,以及改变按钮的尺寸。

        然后链接信息/槽,选中 编辑信息/槽 按钮(如下图),左键Open Image按钮,拖拽,就可以拖出一条链接信号/槽的线,松开鼠标,就弹出编辑出口(如下图)。点击编辑按钮,在槽中添加按钮按下的响应函数,OpenImageClicked()以及ProcessClicked()函数,确定后,点击click,选择OpenImageClicked()作为按钮Open Image的响应函数,同样设置Process的响应函数为ProcessClicked();设计好的界面记得保存,VS2010运行是不会对Qt
Project自动保存,只会加载之前保存的界面

       

 

 

 

3.3  编写响应函数程序

        在QT5test类中声明和定义两个按钮响应函数OpenImageClicked()和ProcessClicked()

       双击qt5test.h,在类中添加两个响应函数的声明,添加头文件,以及私有变量cv::Mat image;

       

[cpp] view plain copy

  1. #ifndef QT5TEST_H  
  2. #define QT5TEST_H  
  3.   
  4. #include <QtWidgets/QMainWindow>  
  5. #include <Qlabel>      
  6. #include "ui_qt5test.h"  
  7. #include<opencv2\opencv.hpp>  
  8. #include <opencv/cv.h>  
  9. #include <opencv/highgui.h>  
  10. using namespace cv; 
  11. class Qt5test : public QMainWindow  
  12. {  
  13.     Q_OBJECT  
  14.   
  15. public:  
  16.     Qt5test(QWidget *parent = 0);  
  17.     ~Qt5test();  
  18.   
  19. private:  
  20.     Ui::Qt5testClass ui;  
  21.     Mat image;   //定义私有变量 image  
  22.     Mat result;//定义私有变量 result  
  23.   
  24. private slots:    //声明信号函数  
  25.     void OpenImageClicked();  
  26.     void ProcessClicked();  
  27. };  
  28.   
  29. #endif // QT5TEST_H  

 

       双击qt5test.cpp,定义响应函数,在根目录下添加一张自己喜欢的图片,命名为"img.jpg"

 

[cpp] view plain copy

  1. #include "qt5test.h"  
  2.   
  3. Qt5test::Qt5test(QWidget *parent)  
  4.     : QMainWindow(parent)  
  5. {  
  6.     ui.setupUi(this);  
  7. }  
  8.   
  9. Qt5test::~Qt5test()  
  10. {  
  11.   
  12. }  
  13.   
  14. void Qt5test::OpenImageClicked()  
  15. {  
  16.     image =imread("img.jpg");//读取图像  
  17.     cvtColor(image, image, CV_RGB2RGBA);//图像在QT显示前,必须转化成QImage格式,将RGBA格式转化成RGB  
  18.     QImage img = QImage((const unsigned char*)(image.data),   
  19.         image.cols, image.rows, QImage::Format_RGB32);   
  20.     QLabel *label = new QLabel(this);  
  21.     label->move(130,50);  
  22.     label->setPixmap(QPixmap::fromImage(img));    
  23.     label->resize(label->pixmap()->size());  
  24.     label->show();  
  25. }  
  26.   
  27. void Qt5test::ProcessClicked()  
  28. {  
  29.     flip(image,result,1);//对图像进行翻转  
  30.     QImage img = QImage((const unsigned char*)(result.data),   
  31.         result.cols, result.rows, QImage::Format_RGB32);  
  32.     QLabel *label = new QLabel(this);  
  33.     label->move(380,50);  
  34.     label->setPixmap(QPixmap::fromImage(img));    
  35.     label->resize(label->pixmap()->size());  
  36.     label->show();  
  37. }  

3.4 运行程序结果如下

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值