Qt QImage 显示TIFF格式图片

这篇具有很好参考价值的文章主要介绍了Qt QImage 显示TIFF格式图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,需求

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

qt加载tif图片,Qt,qt,开发语言,opencv,QImage,Mat

二,关键点

(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 进行加载了。

qt加载tif图片,Qt,qt,开发语言,opencv,QImage,Mat

 文章来源地址https://www.toymoban.com/news/detail-612550.html

到了这里,关于Qt QImage 显示TIFF格式图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT使用QImage制作图片的四种(圆形,六边形,复古与负片)效果(测试过效果的代码)

    负片效果: 复古效果:   裁剪成圆形   裁剪成六边形:  

    2024年02月13日
    浏览(41)
  • 【QT开发(5)】0919-QT里面新增ui类,新增使用opencv读取图片的普通类,在ui类中显示图片

    1、Qt Creator快速入门_第三版__霍亚飞编著 2、《Qt+OpenCV显示图片(Mat转QImage然后显示在QLabel上)》 https://gitee.com/hiyanyx/qt5.14-cpp_-empty_-project/tree/Study2023-section5/ git分支“Study2023-section5” 新增ui类 新增使用opencv读取图片的普通类 为了更加方便,可在QT 中添加普通类,这样会自动生

    2024年02月07日
    浏览(45)
  • qt加载obj格式的3D模型

    在 Qt 中加载 obj 格式的 3D 模型可以使用 Qt 3D 模块。 首先,你需要在你的工程文件中包含 Qt 3D 模块,方法是在工程文件的顶部添加以下行: 然后,在你的代码中包含 Qt 3D 的头文件: 接下来,你可以使用 Qt3DRender::QObjLoader 类来加载 obj 格式的 3D 模型。首先,创建一个 Qt3DRen

    2024年02月16日
    浏览(64)
  • QImage加载opencv读取的图片出错

    今天写opencv的时候, 突然发现一件很奇怪的事情, 用摄像头读取的图片, 用QImage加载的时候传入img.data, 一切都很正常, 但是如果我是从保存的图片读取灰度图, 传入img.data, 它会告诉我QImage不能传入memoryview, 但是我打了断点, 也打印过, 它们确实都是memoryview, 而且

    2024年04月13日
    浏览(41)
  • vue3+tiff.js展示tif文件

    vue3+tiff.js展示tif文件 场景:tif格式的文件需要在页面上预览(预览的tif文件较小) 组件:tiff.js 组件引入: 注意:网络上的信息引入使用 import Tiff from \\\'tiff.js\\\'   但是实际测试这样会报错:   看源码发现只需要直接import即可获取到Tiff对象 代码: 注意: 1.由于tiff文件格式浏

    2024年02月12日
    浏览(55)
  • Qt下SVG格式图片应用

    svg格式图片又称矢量图,该种格式的图片不同于png等格式的图片,采用的并不是位图的形式来组织图片,而是采用线条等组织图片,svg格式是图片的文件格式是xml,可以通过文件编译器打开查看svg格式内容。 svg格式的图片的特点是支持图片的放大和缩小,当图片放大和缩小时

    2024年02月09日
    浏览(54)
  • Qt-setIcon无法加载图片为图标

    当使用 添加Qt资源 来添加一个图片为图标时,按照以下流程: 1、右键点击.pro工程,选择在“Explorer中显示”, 将包含图片的文件夹放在该路径下; 2、右键单击工程项目,点击Add new 3、依次选择Qt→Qt Resource File→名称:res(自己起个名字)→下一步→完成,就会生成一个名

    2024年01月19日
    浏览(33)
  • 基于 Qt 的可视化图片处理程序——图片的加载与保存

    点击按钮选择文件 首先要确定,使用 Qt 中 QFileDialog 库中的 getLoadFile 进行选择文件。 代码如下: 运行效果如下: 图片加载到 Label 在 Qt 中,我们一种最常用的图片加载方式就是使用 QImage 库,此处我们通过 QImage 加载图片,之后通过加载到 QPixmap 中,最终显示在 Label 上 首先

    2024年02月16日
    浏览(43)
  • QT图像处理类QImage常见使用方法

    Qt 是一个跨平台的 C++ 库,提供了丰富的图像处理功能,可以用来实现各种图像处理任务,例如图像缩放、旋转、灰度化、二值化等。本文将介绍使用 Qt 实现图像处理的方法,并提供代码示例。 在 Qt 中,可以使用 QImage 类型来加载和保存图像,QImage 支持多种图像格式,例如

    2024年02月03日
    浏览(78)
  • opencv常用函数,QT中Mat与QImage的转换

    opencv是一个跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,实现了图像处理和计算机视觉方面的很多通用算法。 Mat imread( const String filename, int flags = IMREAD_COLOR );是从指定文件载入一幅图像 filename:要读入图片的完整路径 flags:读入图片

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包