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