Qt OpenCV::Mat与Qt::QImage相互转换


Mat转QImage

1 QImage mat2qim(Mat & mat)
2 {
3     cvtColor(mat, mat, COLOR_BGR2RGB);
4     QImage qim((const unsigned char*)mat.data, mat.cols, mat.rows, mat.step, 
5         QImage::Format_RGB888);
6     return qim;
7 }

利用QImage提供的构造函数,可以直接转化,但是要注意,Mat默认的是BGR空间,而QImage是RGB,所以使用cvtColor函数预处理一下。

 

QImage转Mat

1 Mat qim2mat(QImage & qim)
2 {
3     Mat mat = Mat(qim.height(), qim.width(), 
4         CV_8UC3,(void*)qim.constBits(),qim.bytesPerLine());
5     return mat;
6 }

同理,利用Mat的构造函数实现QImage往Mat的转换,但是要注意,QImage的通道数和数据类型,一般而言默认的是三通道八位无符号数,即CV_8UC3


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM