C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路
2022/5/5 14:28:59
本文主要是介绍C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
当我们将CT切片重建为三维体之后,通常会消除一些不必要的外部组织来观察内部病灶,
一般思路是根据人体常见CT值范围来使得部分组织透明来达到效果,
但这是非黑即白的,即,要么显示皮肤,要么显示神经,要么显示骨骼…
然而,当病灶介于两个CT值范围中间或重合时,要观察病灶这将是一个非常困难的工作,需要手动旋转、切割等一系列操作,
严重降低判断准确性和工作效率,故此采用梯度透明思想来展现渐变过程。
准备一张人体CT值范围表参考:
当我们对三维体使用鼠标操作时,将CT值从最小值到最大值映射到三维体上面,并将透明度从0到100渐变,
如果能自己用代码实现效果最好,否则也可以用VTK进行梯度透明,部分C++代码如下:
vtkSmartPointer<vtkPiecewiseFunction> GradualOp = vtkSmartPointer<vtkPiecewiseFunction>::New();
GradualOp->AddPoint(10, 0.0);
GradualOp->AddPoint(20, 0.5);
GradualOp->AddPoint(30, 1.0);
volumeProperty->SetGradientOpacity(GradualOp);
梯度小于10点的不透明度乘子设为0,完全透明。
梯度大小为10时,不透明度为0;
梯度大小为20时,不透明度乘子为0.5;
梯度大小在10-20时,不透明度乘子通过线性映射至0-0.5之间的数值;
当梯度大小在20-30之间时,不透明度乘子通过线性映射至0.5-1.0之间;
梯度值大于30时,不透明度乘子为1
同样最后还是用观察者模式展现体重建
//设置相机 vtkCamera aCamera = new vtkCamera(); aCamera.SetViewUp(0, 0, -1); aCamera.SetPosition(0, 1, 0); aCamera.SetFocalPoint(0, 0, 0); aCamera.ComputeViewPlaneNormal(); //设置Actor vtkActor coneActor = new vtkActor(); coneActor.SetMapper(skinMapper); coneActor.GetProperty().SetAmbient(0.5); coneActor.GetProperty().SetDiffuse(1); coneActor.GetProperty().SetSpecular(0.6); //显示类 vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); renderer.AddActor(coneActor);//添加coneActor对象 //renderer.AddActor2D(new vtkProp());//添加textActor对象 renderer.SetBackground(0, 0, 0); renderer.SetActiveCamera(aCamera);//添加相机 renderer.ResetCamera(); vtkRenderWindow renWin = renderWindowControl1.RenderWindow;//设置绘图窗口renWin->AddRenderer(renderer);//装载绘图类 vtkWin32RenderWindowInteractor iren = new vtkWin32RenderWindowInteractor(); iren.SetRenderWindow(renWin);//装载绘图窗口
依照上述思想,实现最终效果,
案例①:从面部重建渐变到口腔牙齿,显露出牙床钢钉:
更为直观、方便的观察牙床钢钉及口腔其他情况:
案例②:颅脑及上胸腔平扫,从皮肤渐变到肌肉、神经、骨骼
渐变过程中观察骨骼、神经、血管等病灶:
这篇关于C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具