计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

VTK-Widgets在医学图像交互测量中的研究(2)

2015-01-13 01:13
导读:通过多平面显示工具可以从三维CT图像数据场中获取二维的组织切片,使用vtkLineWidget对二维切片中的组织进行距离测量,该类本身不具备测量功能,但我们

  通过多平面显示工具可以从三维CT图像数据场中获取二维的组织切片,使用vtkLineWidget对二维切片中的组织进行距离测量,该类本身不具备测量功能,但我们可以借助其内部工具来完成测量。

  生 物 医 学 工 程 研 究 第29卷第1期 戴振晖,等:VTK -Widgets在医学图像交互测量中的研究   vtkLineWidget定义了一个交互放置在三维场景内的线段,当对二维切片进行距离测量时,把线段交互式的放置在需要测量的组织切片上,设线段的两个端点分别为p1和p2,p1的坐标为(x1,y1,z1)p2的坐标为(x2,y2,z2),利用两点间的距离公式计算p1和p2之间的距离。

  通过vtkLineWidget得到两个端点坐标,利用距离公式求得距离值为length,最后通过vtkTextActor类将结果显示在屏幕上。如图2所示,使用此方法测量胸部切片内的气管直径为25.7152 mm。图2 气管直径测量结果

  Fig 2 Measurement result of tracheal diameter

  3.2 三维器官的距离测量

  当用户在计算机屏幕上用鼠标点击后,系统根据屏幕坐标点拾取到用户所需要的三维物体上的点,将其转化为世界坐标系下的坐标值,拾取两个特征点后,通过计算输出用户所需要的测量数据。本文使用vtkDistanceWidget类对重建后的三维器官进行长度测量。

  vtkDistanceWidget是vtkAbstractWidget的子类,用户可以独立的放置刻度尺的两个端点,当两个端点被释放时,有一个专门的PlacePointEvent被激活以便有专门的操作来重置点的位置,要使用这个类需要确定一个vtkDistanceWidget实例和一个Representation。它响应下列VTK事件:鼠标左键按下,鼠标拖动,鼠标左键释放,这些VTK事件通过vtkWidgetEventTrans

  瞝ator类转换成vtkDistanceWidget的widget事件:增加点,移动,结束选择[3]。

  在VTK的三维场景中一般存在两种模型,一种是用于对三维物体操作的Widget 模型,另一种是在场景中显示的data模型。但本身处于三维场景中的widget 模型是无法自行触动消息响应函数对data 模型进行控制,要想达到此目的,需要在它和data 模型中间设置一个桥梁,该桥梁就是通过command模式实现的回调函数。同时在外部存在一个Observer 模块对data 模型进行观察,随时反映data 模型的状态[4]。

  交互代码:

  vtkDistanceRepresentation2D *Distance;

  double pos1[3], pos2[3];

  Distance->GetPoint1WorldPosition(pos1);

  Distance->GetPoint2WorldPosition(pos2);

  double dist=sqrt(vtkMath::Distance2BetweenPoin

  瞭s(pos1,pos2));

上一篇:基于人眼视觉特性的多尺度DR图像增强方法 下一篇:没有了