Qt QImage 显示TIFF格式图片

一,需求

利用Qt 控件 显示 tiff 图片,由于tiff图像深度位96位,3通道,所以无法直接用QImage 显示,QImage 支持24位,因此需要利用Opencv 进行转换。

二,关键点

(1),96位 深度需要利用 IMREAD_UNCHANGED 模式进行加载

 Mat image2Draw_mat = imread("depth.tiff",cv::ImreadModes::IMREAD_UNCHANGED);

(2),加载后进行 规一化,然后进行位深 转换,将32f 转成8u

Mat normalize_mat;
normalize(image2Draw_mat, normalize_mat, 0, 500, NORM_MINMAX);
normalize_mat.convertTo(normalize_mat, CV_8U);

(3),因为 opencv 是 bgr格式,所以需要将bgr转成 rgb

cv::cvtColor(normalize_mat, normalize_mat, COLOR_BGR2RGB);

(4),因为原图是3通道,所以qt这边使用 QImage::Format_RGB888

const uchar *pSrc = (const uchar*)image2Draw_mat->data;
        image2Draw_qt = QImage(pSrc, image2Draw_mat->cols,
                               image2Draw_mat->rows,image2Draw_mat->step,QImage::Format_RGB888);

(5),最后建议使用 QGraphicsView 显示 QImage 这样可以进行缩放,更利用观看。

三,位深度的理解

以3通道图像为例,位深度 显示96位,意思是 一个像素,可以显示的颜色范围为2的96次方种,每个通道32位,也就是4个字节。  而Qt Image 最多支持24位,也就是每个通道位8位 一个字节。因此需要将mat 进行转换(normalize_mat.convertTo(normalize_mat, CV_8U)) 把32转成8。之后就可以利用Qt QImage::Format_RGB888 进行加载了。

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 这个问题可能是由于加载的图片格式不被Qt支持,或者是图片文件损坏所导致的。您可以尝试使用Qt支持的其他图片格式,比如JPEG或PNG,来显示您的图片。您也可以检查一下图片文件是否被正确地读取并加载到QImage对象。如果这些方法都无效,您可以尝试查看Qt的文档或向Qt社区寻求帮助。 ### 回答2: 当Qt的QImage显示为黑色时,可能存在以下几种原因: 1. 图片路径错误:首先要确定图片路径是否正确。可以使用绝对路径或者相对路径来指定图片位置。如果路径错误,QImage将无法正确加载图片。 2. 图片格式不支持:QImage支持多种图片格式,如JPEG、PNG、BMP等。如果使用图片格式不受支持,QImage将无法正确加载图片。可以尝试将图片保存为支持的格式,然后再次加载。 3. 图片加载失败:当使用QImage加载图片时,可能会出现图片加载失败的情况。这可能是由于图片损坏或损坏的文件格式造成的。可以尝试使用其他图片查看器打开图片,以确定是否存在图片损坏的情况。 4. 图片显示问题:有时候,即使图片加载成功,但显示时也可能会出现黑色的情况。这可能是由于图片的颜色空间或色彩模式与显示设备不匹配导致的。可以尝试转换图片的色彩模式,或者使用其他显示设备查看图片。 总之,解决Qt QImage显示图片为黑色的问题需要进行排查,确定图片路径正确、格式支持、加载成功,并且考虑图片的颜色空间与显示设备的兼容性。 ### 回答3: 在Qt,当QImage显示为黑色时,可能有以下几个原因: 1. 图像文件路径不正确:首先要确保图片文件的路径是正确的,可以通过打印路径确认。如果路径有误,需要修改路径使其指向正确的图片文件。 2. 图像格式不受支持:Qt支持的图片格式有限,例如,不支持.psd和.gif格式图片。如果你尝试加载不支持的格式Qt可能无法正确显示图片。可以使用`supportedFormats()`函数来获取支持的格式列表,并确保使用图片在支持的格式之内。 3. 图片加载失败:如果图片文件损坏或无法加载,Qt将无法正确显示图片。要解决这个问题,可以尝试打开图片文件,查看是否能够成功加载。 4. 图片大小超出限制:有时候,Qt对于能够加载的图片大小有限制。如果图片过大超过了Qt的限制,可能会导致黑屏。可尝试加载较小尺寸的图片,查看是否能够成功显示。 5. 图片路径包含文或特殊字符:如果图片路径包含文或特殊字符,可能会导致问题。可以尝试使用纯英文字符的路径,看看能否解决问题。 通过排查以上原因,可以帮助解决QtQImage显示黑色的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土拨鼠不是老鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值