一、概述 此篇主要是记录一下如何将OpenCV集成得到Qt Creator中,并将OpenCV的Mat对象转换为QImage并使用qt的api显示图片 a.使用Qt Creator开发工具集成OpenCV,在.pro文件中配置环境即可,如下图所示 b.将Mat对象转为QImage对象并使用Qt显示出来的步骤如下: 1.将使用OpenCV imread函数加载一张图片 2.将Mat转为QImage...
QImage Mat2QImage(constcv::Mat&mat) {//按照Qt帮助文档说明,像素buffer必须在QImage的生命周期内保持有效,且它默认是不会去释放像素buffer,QImage对象之间采用引用计数实现隐式共享底层数据if(mat.type() == CV_8UC1)//单通道{ QImage image(mat.cols, mat.rows, QImage::Format_Indexed8); image.setColorCo...
17 int chana = mat.channels(); 18 //依据通道数不同,改变不同的装换方式 19 if(3 == chana ){ 20 //调整通道次序 21 cv::cvtColor(mat,mat,CV_BGR2RGB); 22 img = QImage(static_cast<uchar *>(mat.data),mat.cols,mat.rows,QImage::Format_RGB888); 23 }else if(4 == chana ){ 24 ...
QImage转换为Format_RGB888等格式时,每行会按4字节(32位)对齐,不足则自动补齐 但是rgb.data中的数据是没有自动补齐的,所以会导致图像作为QImage显示时,会发生倾斜 因此以上代码应改为如下: Mat rgb; QImage img; if(mat.channels() == 3) // RGB image ...
它尽可能高效。QImage Mat2QImage(const cv::Mat3b &src)&...
把图转换成BMP格式而没有转换成JPG、PNG格式,主要考虑的是性能因素。编码成JPG和PNG格式,编码器需要更多的CPU计算才可以完成,但是消耗少量的内存;与之相反,转换成BMP消耗更多的内存,而节省大量的CPU计算。发布于 2022-12-02 19:18・IP 属地广东 OpenCV ...
// cv::Mat转QImage函数 QImagematToQImage(constcv::Mat&mat) { // 检查输入图像的有效性和格式 if(mat.empty()) returnQImage(); // 根据图像颜色通道数确定适当的格式 intformat; switch(mat.channels()) { case1: format=QImage::Format_Grayscale8; ...
通过自己的学习总结,与大家分享的系列。共同探讨,共同进步,少走弯路。 OpenCV入门1:Qt5.142搭建OpenCV4.51学习环境 54:02 OpenCV入门2:机器视觉基础之获取外部世界的视觉源数据(Qt版) 1:21:09 OpenCV入门3:Qt与OpenCV的数字图像转换桥梁QImage与Mat类型介绍 1:01:40...
(resizeMat, resizeMat, cv::COLOR_BGR2RGB); 10 11 // 计算 QImage 的步长 12 int bytesPerLine = resizeMat.cols * resizeMat.elemSize(); 13 14 // 创建 QImage 15 QImage qtImage((uchar*)resizeMat.data, resizeMat.cols, resizeMat.rows, bytesPerLine, QImage::Format_RGB888); 16 17 ...