VS+QT+OpenCV图像处理输出
来源:互联网 发布:第三方软件是什么意思 编辑:程序博客网 时间:2024/04/29 00:26
在使用VS+QT+OpenCV做图像处理的过程中,对OpenCV中的Mat类型的数据格式一直很头疼CV_8UC4,CV_32F等等格式的输出如果是在使用namewindow+imshow的组合进行弹窗输出时确实是没有什么大问题,但是当需要把图片转成QImage输出到控件上时就会出大问题了,因为不同图片格式的Mat在转成QImage时需要使用不同的参数。
但是好在Mat类型在自身的不同格式间转换时没有什么阻碍的。所以就此整理出以下Mat类型输出到QT控件的方法。
一、输出灰度图像,输出灰度图像在格式转换前后通常来说不会有太大的影响,仅有的影响也就只有因为QImage可能会只显示图片的左上角某一部分(长三分之一,宽三分之一),在我看来应该是图像中每个像素数据所占的位数不一样导致的。所以通常只需要在转成QImage前把图片使用mat.convertTo(mat,CV_8UC3){也可以用其他格式}转换格式后再转成QImage(转成QImage的方法在下面会给出)。
二、输出RGB图,输出RGB图在通常时和输出灰度图是一样的(这个通常情况指的是读取的是RGB图,输出这个读取的RGB图),但是如果对RGB图进行了三个通道的拆分后,对RGB通道分别处理以后再重新合成RGB图像的话(使用vector<Mat> vmat读取B G R三个通道的数据并分别处理,最后使用merge(vmat,mat)组成输出的图像),需要在merge后再次使用convertTO转变mat的格式,然后才能统一输出,至于转成什么格式,推荐是CV_8UC1,CV_8UC3,CV_8UC4,原因的话,因为本人对QImage的数据格式不了解,只能参照其他博主的QImage和Mat类型的格式转换方法,在之前搜索的资料中看到过两个博主的代码是可用的,根据自己的使用体验推荐下面这段代码
在图片格式转换完成后,使用
ui.QLabel->setPixmap(QPixmap::fromImage(QImage));
ui.QLabel->resize(ui.QLabel->pixmap()->size());
完成QImage输出到QLabel的操作
本文代码片段来源:http://blog.csdn.net/dancing_night/article/details/51545524,如有侵犯,请联系本人好及时删除。
- VS+QT+OpenCV图像处理输出
- [vs+qt+opencv]手把手做GUI图像采集及处理UI交互界面
- Qt 5.4 + OpenCV 进行图像处理Tips
- 【计算机视觉】【图像处理】【VS开发】【Qt开发】opencv之深拷贝及浅拷贝,IplImage装换为Mat
- 基于VS针对opencv图像处理的可执行程序打包
- 使用VS+OpenCV的图像处理简单例子
- 医学图像DICOM处理-VTK+Qt+VS开发环境搭建
- 在qt上OpenCV处理OV9650采集的图像
- Qt:&OpenCV—Q图像处理基本操作(Code)
- Python&Qt&opencv图像处理(2):hello world
- 在qt上OpenCV处理OV9650采集的图像
- linux下基于QT openCV的图像处理
- 基于QT+OpenCV图像处理之滤波1
- 基于Qt Quick与opencv实现的图像处理系统
- qt+opencv实现拍照,打开视频,图像处理操作
- QT+opencv实现简单的图像处理界面
- opencv 处理视频并使用Qt窗口作为输出
- QT OpenCv 图像显示
- linux 安装 mysql
- Java线程学习(一):线程并发和线程忙等待
- zookeeper安装
- MVPPlugin插件之混淆踩坑记录
- 初步了解分布式与集群
- VS+QT+OpenCV图像处理输出
- java学习第42天,hashMap
- CRF++使用教程
- Json(1)---使用StringBuffer拼接json
- 共享姨妈巾出来了成为共享家族中的热门产品
- wireshark抓包详解
- (OK) patent-2 (专利-2) 一种在智能终端设备中实现MPTCP协议的方法及装置
- 观察者模式
- Google官方 详解 Android 性能优化二【史诗巨著之内存篇】