Mat转QImage
Mat mat=imread("c:/dev/test.jpg");
cvtColor(mat, mat, CV_BGR2RGB);
QImage image(mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888);
Qt与OpenCv之间传输数据时,QImage::Format_RGB888
是最兼容的模式.
OpenCv 加载BGR格式,而不是RGB格式,因此需要首先将BGR转换成RGB。
QImage转Mat
QImage image("C:/dev/test.jpg");
image = image.convertTOForm(QImage::Format_RGB888);
Mat mat = Mat(image.height(), image.width(), CV_8UC(3), image.bits(),image.bytesPerLine());
以上操作最好借助一个中间变量进行。