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());
以上操作最好借助一个中间变量进行。