欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑

发布时间:2024/3/13 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑

1、本实验要完成的功能:利用opencv将原图像灰度处理,然后显示在label上

2、图像处理程序:

cvtColor(src, temp, CV_BGR2GRAY); //将彩色图像转换为灰度图像QImage img((const unsigned char *)(temp.data), temp.cols, temp.rows, QImage::Format_Indexed8); //将Mat转换为qimage类型ui.label_3->setPixmap(QPixmap::fromImage(img)); //在label上 显示图片

运行结果却是如下全黑图片

3、解决办法
出现这个问题的原因是label显示图片的格式为rgb,在显示图像之前应该把处理后的图像改成rgb格式可以使用setColorTable函数完成

代码:

cvtColor(src, temp, CV_BGR2GRAY); //将彩色图像转换为灰度图像QImage img((const unsigned char *)(temp.data), temp.cols, temp.rows, QImage::Format_Indexed8); //将Mat转换为qimage类型QVector<QRgb> colorTable;for (int k = 0; k<256; ++k){colorTable.push_back(qRgb(k, k, k));}img.setColorTable(colorTable);ui.label_3->setPixmap(QPixmap::fromImage(img)); //在label上 显示图片

显示结果如下:

总结

以上是生活随笔为你收集整理的opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。