[OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-immagini-da-opencv-in-una-gui-con-qt/

重要术语保持英文不变,如Widget等。原文中rendering意为渲染或绘制。


此教程是关于在Qt图形界面中显示OpenCV图像的问题,我们创建了一个基于QGLWidget的Qt Widget。

这个Widget提供了更好的图像绘制性能,并支持在缩放窗口时固定高宽比。

此教程假定读者掌握关于C++、Qt 5 框架、OpenCV 2库在Qt Creator中开发环境的配置的基础知识。实例代码是在Windows 7下设计的,但也能在不需大幅改动的前提下移植到Linux和MacOS中,只需配置正确的库文件路径即可。

第一部分描述了Widget的创建。

CQtOpenCVViewerGl 类的创建:

在 QtCreator 中:

  • 文件-> 新建文件或工程 -> C++ -> C++ Class -> Choose
  • 类名: CQtOpenCVViewerGl
  • 基类: QGLWidget [注意字母大小写]

译者注:从Qt 5.4版本开始,QGLWidget已更新为QOpenGLWidget。

到这一步你应该在工程中建立了两个新的文件,cqtopencvviewergl.cppcqtopencvviewergl.h

打开 cqtopencvviewergl.h 并添加几个私有成员变量:

private:
   bool mSceneChanged; /// Indicates when OpenGL view is to be redrawn
   QImage mRenderQtImg; /// Qt image to be rendered
   cv::Mat mOrigImage; /// original OpenCV image to be shown
   QColor mBgColor; /// Background color
   int mOutH; /// Resized Image height
   int mOutW; /// Resized Image width
   float mImgratio; /// height/width ratio
   int mPosX; /// Top left X position to render image in the center of widget
   int mPosY; /// Top left Y position to render image in the center of widget
  • mSceneChanged: 指示图像是否需要绘制
  • mRenderQtImg: 包含需要绘制的图像 (Qt格式)
  • mOrigImage: 包含需要绘制的图像 (OpenCV格式)
  • mBgColor: 不显示图像的区域的背景色
  • mOutH & mOutW: 图像真实绘制尺寸
  • mImgratio: 包含有关图像大小比例的信息
  • mPosX & mPosY: 左上角开始的图像坐标,允许在窗口部件的中心绘制图像

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值