首页 > 其他 > 详细

VS+QT创建一个OpenCV应用

时间:2019-08-26 13:47:54      阅读:73      评论:0      收藏:0      [点我收藏+]

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库

 技术分享图片

 

VS+QT创建一个OpenCV应用

原文:https://www.cnblogs.com/fcfc940503/p/11411541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!