如何在不经过文件名加载的情况下直接将cv :: Mat转换为QPixmap?
我已对此进行了一些研究,但没有提示!
作为第一步,我尝试的是保存图像,然后加载它。但这不是我想要的。
答案 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/