根据透明度组合两张QImage的方法

本文由Markdown语法编辑器编辑完成。

问题需求:

在之前完成模型切割的功能中,(关于模型切割,后续会有专门的博文介绍),已经实现了利用现有模型库中的模型,来从体数据中分割模型对应的区域。模型切割类似于拿一个固定大小的模具从被分割的体数据中去挖取出模具所包含的区域。

为了在模型切割前,准确地将模型与被分割的区域对齐,增加模型透明度的调节功能,这样可以在调节的过程中,同时看到两部分区域,以便于更准确地对齐。

如下图1所示:
这里写图片描述
图1. 模型骨不透明度为1时的图像

该图中,蓝色的模型骨是提前由医生分割出的标准股骨模型(stl格式文件),而黄色的背景模型则是由被分割体数据通过MarchingCubes面绘制后得到的模型。

模型切割则是希望利用蓝色的标准股骨模型,从黄色的背景体数据中分割出模型骨对应的区域。

由于本项目是基于QT框架,利用VTK作为底层图像渲染。当前显示的两张图像均是通过从VTK的RenderWindow中利用Filter把图像取出,然后再填充到QImage,从而显示在界面的QWidget中的。

因此,最终的需求是:如何能够混合两张QImage图像的像素,使他们能够实现可以随着透明度的改变而实现像素混合。最终希望得到的效果是这样的。

这里写图片描述
图2. 模型骨不透明度为0.8时的图像

这里写图片描述
图3. 模型骨不透明度为0.3时的图像

解决方案

以下讲解具体的实现过程:

参考链接:

  1. How to set opacity of a QImage
    https://forum.qt.io/topic/41237/how-to-set-opacity-of-a-qimage/7

  2. Qt 学习之路 2(29):绘制设备
    https://www.devbean.net/2012/12/qt-study-road-2-paint-device/

这里写图片描述

  1. Blending two images with respect to pixel content
    http://stackoverflow.com/questions/11900717/blending-two-images-with-respect-to-pixel-content

未完待续……

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

inter_peng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值