将Mat转换为QPixmap

时间:2013-05-07 13:48:45

标签: c++ visual-studio-2010 qt opencv qpixmap

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

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

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

2 个答案:

答案 0 :(得分:7)

杰哈是对的。

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

然后:

QPixmap::fromImage(QImage((unsigned char*) mat.data, mat.cols, mat.rows, QImage::Format_RGB888));

答案 1 :(得分:1)

Mehfoos Yacoob是对的,这是将cv::Mat转换为QPixmap的最佳方式。首先,您需要将cv::Mat转换为QImage,然后使用fromImage函数,将其结果分配给QPixmap。请务必记住cv::Mat的类型,以便使用正确的QImage格式。

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