将opencv的Mat转换为qt的QImage

opencv的Mat与qt的QImage之间转换的首要问题在于QImage是rgb排列而Mat是bgr排列,不过好在opencv提供了颜色空间转换的函数cvtColor,通过它可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像(CV_BGR2GRAY)。

Mat m;
m = imread("F:\\1.png");
cvtColor(m,m,CV_BGR2RGB);

QImage image;
image = QImage((const unsigned char*)(m.data),
               m.cols,m.rows,
               m.cols*m.channels(),
               QImage::Format_RGB888);

QLabel label;
label.setPixmap(QPixmap::fromImage(image));
label.resize(image.size());
label.show();

你可能感兴趣的:(OpenCV,opencv,qt,rgb)