- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE
PAGE1
远程会诊三维化——谈支持远程会诊的三维
PACS工作站设计与实现
本文作者介绍了一种采用双向远程控制技术实现点对点方式远程会诊的三维PACS工作站,使用该系统,会诊双方可以在有限带宽下实时交互操作高分辨率和大容量医学图像。
传统的二维图像技术缺乏直观的三维效果,在远程会诊中,医生需要根据经验由多幅图像估计病灶的形状、大小以及和周围组织的关系。随着设备的发展,一次扫描产生几百幅上千幅图像,这也对传统的二维显示工作站提出了挑战。而三维PACS工作站可以无创伤地提供传统方法无法获得的解剖信息。远程会诊和远程教学系统也有三维实时交互的需求,这里就介绍一种在原有的二维会诊系统基础上,使用开源工具包VTK,开发支持远程会诊的三维PACS工作站的方法。
基于VTK的三维PACS工作站
VTK的全称是VisualizationToolkit,是一套开源的、免费的三维图形学、图像处理和可视化开发工具包。VTK功能非常强大,提供了医学影像处理与分析所需要的三维可视化技术,支持跨平台开发。为了简化接口,提高代码的可重用性,可维护性以及系统的可扩展性,我们采用了状态模式。状态模式允许对象在内部状态发生变化时,改变自身的行为。
面绘制
解码程序解析DICOM格式的图像,得到像素信息,经过VTK中的vtkImageImport类进入VTK流水线,vtkMarchingCubes类提取出等值面的三角面片,vtkPolyDataMapper将三角面片映射到图形库。
体绘制
体绘制不产生中间数据,直接合成最终图像。VTK支持光线投射体绘制(RayCasting)和Shear-warp体绘制。虽然Shear-warp算法是目前软件体绘制方法中速度最快的,但预处理阶段需要在生成三个游程编码数据,而且当改变转移函数的时候,需要重新对数据进行预处理,我们选用了光线投射算法。光线投射算法生成的图像的质量较其他方法好。DICOM图像经过vtkImage-Import类进入流水线,vtk-VolumeRayCastMapper类接受
规则数据作为输入,根据颜色和不透明度曲线,以及可选的梯度调制函数,合成出图像。
最大亮度投影
最大亮度投影方法广泛应用于MR图像中,用来产生类似MR血管造影的效果。最大亮度投影可以看作是一种简化的光线投射体绘制算法,不同于沿光线方向累积颜色值,而是直接取光线方向的最大亮度值作为最终像素亮度。
多平面重组
CT科医生经常使用多平面重组法(MPR)快速找到感兴趣的组织区域。我们实现了常规MPR和自由模式MPR。常规MPR提供冠状面、矢状面、横轴面以及与这三个平面的法线平行的切面的图像。自由模式的MPR则可以提供任意切面的图像。切面图像作为纹理映射到空间的一个平面。
图1三维PACS工作站实例面绘制(左上两图),体绘制(左下),最大亮度投影(左图右下),多平面重组(右图)。最大亮度投影采用MR图像,其余采用CT图像。
远程会诊系统设计
远程会诊的请求方和专家方之间交换三种信息:图像从请求方发送到专家方;使请求方和专家方对图像的操作同步;请求方与专家方进行语音交互。图像发送的数据量比较大,但是通常可以在会诊开始前完成。对图像的操作,如平移、缩放以及三维旋转操作等事件信息,必须实时交换,以保证双方的同步。由于事件消息很短,常规电话线带宽就可以支持实时交换这些信息。语音交流可以通过另一根电话线完成。
请求方通过DICOM服务从PACS或者扫描设备获取图像并存入本地数据库,这些图像通过DICOM服务发送到专家方。会诊开始后,应用程序操作这些图像,这将产生二维和三维交互事件,会诊双方采用TCP/UDP协议交换这些消息进行同步。系统架构如图2所示。
VTK采用了Command/Observer模式,使得我们可以捕捉感兴趣的事件,并可以重用我们原有二维远程会诊系统的消息发送接收和双向远程操作模块。三维旋转操作开始和结束事件是重要的三维操作事件,多平面重组中改变两个平面交线的操作也是重要事件。重要的事件采用TCP方式传输,可以防止丢失,并保证事件按照顺序到达。旋转操作的中间过程并不重要,允许丢失,因此我们采用UDP方式传输这类事件。工作站保存最新传入事件的产生时间,并丢弃产生时间早的事件。用户一次旋转操作可以产生一个开始操作事件、一个结束事件以及很多中间事件,但我们对旋转过程的细节不关心。工作站接收到旋转事件后,详细显示旋转过程将占用大量CPU时间,在旋转开始时,调用类vtkRender-Window的成员函数SetDesired-UpdateRate,提高更新速率,在旋转结束时,恢复更新速率到正常值。这样可以不显示旋转过程细节,提高交互响应时间,使会诊双方交互没有延迟感。
工作站接收到传入的消息后,进行相应的处理
文档评论(0)