本文由Markdown语法编辑器编辑完成。
问题需求:
在之前完成模型切割的功能中,(关于模型切割,后续会有专门的博文介绍),已经实现了利用现有模型库中的模型,来从体数据中分割模型对应的区域。模型切割类似于拿一个固定大小的模具从被分割的体数据中去挖取出模具所包含的区域。
为了在模型切割前,准确地将模型与被分割的区域对齐,增加模型透明度的调节功能,这样可以在调节的过程中,同时看到两部分区域,以便于更准确地对齐。
如下图1所示:
图1. 模型骨不透明度为1时的图像
该图中,蓝色的模型骨是提前由医生分割出的标准股骨模型(stl格式文件),而黄色的背景模型则是由被分割体数据通过MarchingCubes面绘制后得到的模型。
模型切割则是希望利用蓝色的标准股骨模型,从黄色的背景体数据中分割出模型骨对应的区域。
由于本项目是基于QT框架,利用VTK作为底层图像渲染。当前显示的两张图像均是通过从VTK的RenderWindow中利用Filter把图像取出,然后再填充到QImage,从而显示在界面的QWidget中的。
因此,最终的需求是:如何能够混合两张QImage图像的像素,使他们能够实现可以随着透明度的改变而实现像素混合。最终希望得到的效果是这样的。
图2. 模型骨不透明度为0.8时的图像
图3. 模型骨不透明度为0.3时的图像
解决方案
以下讲解具体的实现过程:
参考链接:
How to set opacity of a QImage
https://forum.qt.io/topic/41237/how-to-set-opacity-of-a-qimage/7Qt 学习之路 2(29):绘制设备
https://www.devbean.net/2012/12/qt-study-road-2-paint-device/
- Blending two images with respect to pixel content
http://stackoverflow.com/questions/11900717/blending-two-images-with-respect-to-pixel-content
未完待续……