6

我们如何在不加载文件名的情况下直接将 cv::Mat 转换为 QPixmap?

我已经对此进行了一些研究,但没有任何提示!

作为第一步,我尝试的是保存图像,然后加载它。但这不是我想要的。

4

2 回答 2

11

杰汉是对的。

对于将来引用此线程的人:首先将图像从 BGR(OpenCV 使用)转换为 RGB。

然后:

QPixmap::fromImage(QImage((unsigned char*) mat.data, mat.cols, mat.rows, QImage::Format_RGB888));
于 2013-08-16T10:38:13.270 回答
3

Mehfoos Yacoob 是对的,这是将 a 转换cv::Mat为 a的最佳方法QPixmap。首先,您需要将 转换cv::Mat为 a QImage,然后使用该fromImage函数将其结果分配给 a QPixmapcv::Mat为了使用正确的QImage格式,记住 的类型很重要。

这是如何做到这一点的一个小例子:http: //asmaloney.com/2013/11/code/converting-between-cvmat-and-qimage-or-qpixmap/

于 2015-05-19T23:24:20.173 回答