How can we convert directly cv::Mat to QPixmap without going through filename loading?
I have made some research about it but no hints!
As a first step, what I have tried is that I save the image, and then load it. But it's not what I want to have.
How can we convert directly cv::Mat to QPixmap without going through filename loading?
I have made some research about it but no hints!
As a first step, what I have tried is that I save the image, and then load it. But it's not what I want to have.
Jehan is right.
For people referring to this thread in the future: First convert image from BGR(used by OpenCV) to RGB.
Then:
QPixmap::fromImage(QImage((unsigned char*) mat.data, mat.cols, mat.rows, QImage::Format_RGB888));
Mehfoos Yacoob is right, that is the best way to convert a cv::Mat to a QPixmap. First, you need to convert the cv::Mat to a QImage, and then using the fromImage function, assign its result to a QPixmap. It is important to keep in mind the type of the cv::Mat in order to use the correct QImage format.
This is a little example of how to do it: http://asmaloney.com/2013/11/code/converting-between-cvmat-and-qimage-or-qpixmap/