Mat image = imread("cat1.png");
Mat temp;
if (image.channels() == 4)
{
cvtColor(image, temp, COLOR_BGRA2RGB);
}
else if (image.channels()==3)
{
cvtColor(image, temp, COLOR_BGR2RGB);
}
else
{
cvtColor(image, temp, COLOR_GRAY2RGB);
}
QImage img = QImage((uchar*)temp.data, temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
ui.label->setPixmap(QPixmap::fromImage(img));
ui.label->resize(ui.label->pixmap()->size());
- 因为opencv读取的图片都是bgr,所以都转换为rgb,然后用qimage去获取图片的数据,长宽,字节数大小,并存储为8-8-8 24位rgb格式。
- 在label中运用qpixmap,其中利用qimage填充qpixmap。