一、概述
Qt中显示OpenCV的图片。OpenCV中的Mat默认是3通道图片。但是其灰度图、二值图片会是8位单通道的。
示例代码中记录了如何显示
二、代码示例
#include "ImageUtils.h" Mat ImageUtils::qImageToMat(QImage qImage) {//QImage转Mat三通道图片 QImage image = qImage.convertToFormat(QImage::Format_RGB888); Mat mat = Mat(image.height(), image.width(), CV_8UC3, image.bits(), image.bytesPerLine()); return mat; } QImage ImageUtils::matToQImage(Mat src) { cvtColor(src, src, COLOR_BGR2RGB);//转换色彩空间,因为Mar默认是BGR,要转换为RGB QImage qImage(src.data, src.cols, src.rows, src.step, QImage::Format_RGB888); return qImage; } QImage ImageUtils::matToQImage8(Mat src) {//QImage显示Mat的8位单通道图片 QImage qimage(src.data, src.cols, src.rows, src.step, QImage::Format_Grayscale8); return qimage; }