首页 > 技术文章 > QT自定义opengl的Widget绘制Mat

jack-wangchong 2017-08-23 13:34 原文

QT自定义opengl的Widget绘制Mat

  • 宽高 512

 
  • 修改名字mat
  • 自定义类型 提升为


 
  • 提升为MatView类

 
  • 类型已经改变为MatView

 
  • 新建MatView类cpp文件

 
  • 添加头文件
  • 修改构造函数(函数实现,调用父类构造函数)
  • 添加宏定义


 
  • 重载绘制函数
  • 只显示图片使用paintEvent()
  • 若绘制视频相关,需要使用repaint、update相关函数

 
  • 只要窗口发生变化,都会调用该函数(如:窗口移动了,所以相关业务逻辑,不能放入,只做绘图的业务)

 
  • 工程文件配置
  • opencv配置
  • 输出目录
  • 调试目录
  •  头文件目录
  • 链接器目录
  •  链接器文件
 
  • 引入头文件

 
定义QImage类型
  • 文件源数据(opencv读入的文件)
  • 宽高
  • 数据格式

 读入图片,并定义QImage

qt内定义图片类型格式
  • 每个像素一个字节 8位,也就是RGB888;同理RGB555,也就是每个像素5位
 
绘制显示图片
  • 第一步 清理
  • 第二步 绘制图片

 
显示的效果原因:
  • opencv读入图片默认为BGR顺序,转换为RGB模式

 
 
使用OpenGL绘制图片的优点:
  • 后期处理非常方便,如图象的选择区ROI,添加文字、按钮等。
 
 


   博客 2017年8月23日13:36:09

推荐阅读