【资料收集】Converting Between cv::Mat and QImage or QPixmap

参考:

方法一

Convert between cv::Mat and QImage 两种图片类转换 - Grandyang - 博客园

http://www.cnblogs.com/grandyang/p/5602360.html

方法二

QImage 与 cv::Mat 之间的相互转换 - Ivan 的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/liyuanbhu/article/details/46662115

方法三

Converting Between cv::Mat and QImage or QPixmap

https://asmaloney.com/2013/11/code/converting-between-cvmat-and-qimage-or-qpixmap/

原文地址:https://www.cnblogs.com/hhxxgdd/p/8523908.html

时间: 2024-11-02 15:28:18

【资料收集】Converting Between cv::Mat and QImage or QPixmap的相关文章

OpenCV图片类cv::Mat和QImage之间进行转换(好多相关文章)

在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ##### // Shallow copy QImage mat2qimage_ref(cv::Mat &m, QImage::Format format) { return QImage(m.data, m.cols, m.rows, m.step, format); } // Deep copy QI

Convert between cv::Mat and QImage 两种图片类转换

在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ##### // Shallow copy QImage mat2qimage_ref(cv::Mat &m, QImage::Format format) { return QImage(m.data, m.cols, m.rows, m.step, format); } // Deep copy QI

QImage 与 cv::Mat 之间的相互转换

最近做图像处理方面的项目比较多,很多算法自己从头写的话太浪费时间,而且自己写的也不一定完善,早就听说OpenCV在图像处理算法方面功能很强大,一直没时间学习,这次正好项目用到了,临时抱佛脚学习些OpenCV入门知识.因为我的程序界面都是用Qt写的,因此也花了点时间研究了如何将OpenCV 和Qt 融合在一起,协同工作. Qt 中处理图像主要用的是QImage类,OpenCV中主要用的是cv::Mat类.下面的两个函数可以用来实现这两个类相互转换. QImage cvMat2QImage(cons

OpenCV学习(2)--cv::Mat转化为QImage

一.目的 在使用Qt和OpenCV写程序的时候,有时候需要使用OpenCV进行处理,然后使用Qt显示出来,因此,有必要考虑将如何将cv::Mat类型转换为QImage类型. 二.原理 网上主流的做法是使用QImage的构造函数进行转换,主要是使用cv::Mat的data来构造一个QImage类型,这样做确实可以达到转换目的,但是,因此这样构造出来的QImage本身并不保存data,因此,在QImage的生存周期内,必须保证cv::Mat中的数据不会被释放.上面的这个问题也是比较容易解决的,主要是

Mat转换为QImage

请留意: opencv为3.0.0版本,Qt为4.8.4版本 1 #include"image1.h" 2 #include<QApplication> 3 #include<QImage> 4 #include<QDebug> 5 #include<opencv2/opencv.hpp> 6 7 int main(int argv , char* argc[] ){ 8 9 QApplication a(argv,argc); 10 Q

访问cv::Mat中的数据时遇到的指针类型问题

在用Opencv的时候由于下图原本的图像尺寸是1111*1111,要进行resize,代码如下: cv::Mat img = cv::imread("//Users//apple//td3//vase//19201.png",CV_LOAD_IMAGE_GRAYSCALE); cv::Mat img2; cv::resize(img, img2, cv::Size(400,400),0,0, cv::INTER_AREA); 因为我根本不知道img的数据是什么类型(不知道数据类型根本无

cv::Mat到YUV420的转换

某些特定场合我们会经常遇到yuv420格式的视频文件,这种视频帧无法直接用于opencv,故而,需要进行格式转换:幸运的是,opencv提供了rgb到yuv420的格式转换函数:下面给出基本用法: 函数1:读取avi格式的视频文件,转换成Yuv420格式,并写入文件: void WriteYuv() { cv::VideoCapture vc; bool flag = vc.open("S1000008.avi"); if (!flag) { printf("avi file

关于opencv中cv::Mat设置roi

opencv中设置roi实验: 1 cv::Mat SrcImg; 2 SrcImg = cv::imread("../resource/cpw3.png"); 3 cv::imshow("原图像",SrcImg); 4 5 // 第一次提取部分ROI 6 cv::Rect SrcImgROI = cv::Rect( SrcImg.cols/2, 0, SrcImg.cols/2, SrcImg.rows/2); 7 cv::Mat SrcROIImg = SrcI

Write cv::Mat to a file

如果我们想把OpenCV中的矩阵数据类型cv::Mat保存在一个文件中,可以使用如下的代码: void writeMatToFile(cv::Mat& m, const char* filename) { ofstream fout(filename); if(!fout) { cout<<"File Not Opened"<<endl; return; } fout << m; fout.close(); }