• VS+QT创建一个OpenCV应用


    1、选择:文件->新建->项目->搜索“QT”->Qt GUI Application,输入工程名,下一步…进行新建。

    选择依赖的模块:最基础的QtCore、QtGui、QtWidgets还有一些音/视频、网络、数据库、XML、OpenGl相关的模块,需要使用的直接勾选即可。

    选择QtGuiApplication2.ui -> 打开方式 -> Qt Designer -> 确定

     拉一个OPenGL控件到窗体上

     改控件名字为mat->右键选择提升为...

    提升的类名称:MatView -> 点击添加 ->提升 -> ctrl + F 保存界面 ,如下图

    Header Files右键 -> 类导向 -> 添加类 -> 类命:MatView -> 完成 -> 确认,如下图

    MatView.h代码

    #pragma once 
    //导入相应的库 
    #include <QOpenGLWidget> 
    //继承QOpenGLWidget
    class MatView:public QOpenGLWidget 
    	{ 
    	Q_OBJECT
        public: 
    //构造函数
        MatView(QWidget *p);
       ~MatView();
      //重载一个函数
       void paintEvent(QPaintEvent *e);
    };
    

      MatView.cpp代码

    #include "QtGuiApplication2.h"
    #include <QtWidgets/QApplication>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	QtGuiApplication2 w;
    	w.show();
    	return a.exec();
    }
    

      

    main.cpp代码

    #include "MatView.h" 
    #include<opencv2/core.hpp> 
    #include <opencv2/imgproc.hpp> 
    #include <opencv2/imgcodecs.hpp>
    #include <QImage> 
    #include <QPainter> 
    using namespace cv; 
    //重载一个函数,只要窗口发生变化他都会调用,这个函数不能处理业务逻辑,只做处理图像 
    void MatView::paintEvent(QPaintEvent *e) {
    	Mat src = imread("E:\VS2015Opencv\vs2015\project\picture\12.jpg");
        QImage img(src.data, src.cols, src.rows, QImage::Format_RGB888);
        QPainter painter;
    	painter.begin(this);
    	painter.drawImage(QPoint(0, 0), img);
    	}
    //构造函数,调用父类的,因为父类还有处理在里面,所以要调用它
        MatView::MatView(QWidget *p) :QOpenGLWidget(p)
      {
    	}
    	MatView::~MatView(){
    	}
    

      添加opencv库

     

  • 相关阅读:
    k8s学习
    k8s学习
    k8s学习
    Linux 常用命令(持续补充)
    通过一个小故事,理解 HTTPS 工作原理
    Spring Cloud 微服务架构全链路实践
    Spring Cloud Eureka 使用 IP 地址进行服务注册
    RabbitMQ 消息顺序、消息幂等、消息重复、消息事务、集群
    Spring Boot 实现 RabbitMQ 延迟消费和延迟重试队列
    RabbitMQ 集群原理和完善
  • 原文地址:https://www.cnblogs.com/fcfc940503/p/11411541.html
Copyright © 2020-2023  润新知