醫學影像處理交互平臺MITK框架研究

    研究了MITK(Medical Image Interaction Tool Kit)有段時間了,編譯也編了,能添加的插件都添加了,基本使用也用了,現對整個框架做一個簡要梳理。

引言:

1895年,德國科學家倫琴發明X射線,促使CT(計算機斷層成像)、MRI(核磁共振成像)、CR(計算機X線成像)、B超、電子內窺鏡等現代醫學影像設備相繼出現,並廣泛應用在臨牀診斷和治療上,極大的提升和豐富了醫學診斷的方法和工具。但由於各種成像設備的設計和開發過程相對獨立,各設備配套軟件又過於封閉且不統一,因此使得臨牀影像的釆集和處理流程變得複雜。終端用戶往往面臨着設備與軟件不配套、圖像功能特性單一,分割、配準、可視化算法單一,可集成性差的問題,增加了用戶的使用和維護成本。德國癌症腫瘤研究中心開源的軟件系統MITK(The Medical Imaging Interaction Toolkit)是一個具有統一算法接口和數據規範、支持多模態圖像和多種引導治療設備、具備多種數據處理和數據分析功能、豐富的可視化功能的高可複用、可擴展的軟件平臺。通過對MITK系統的研究分析,總結出系統平臺的框架設計結構,各模塊功能與相互依賴關係,系統的插件擴展機制及其應用,對構建與實現定製化的多模態醫學影像交互處理軟件平臺系統有重要意義。

 

1MITK系統框架

MITK由德國癌症腫瘤研究中心(GermanCancer Resesarch Center Division of Medical Image Computing)設計並實現,它是一個醫學圖像處理的開源的軟件工具集,它將圖像數據分析工作序列化,並集成了醫用成像設備或引導設備的硬件驅動,它的設計目標是提供一套高可複用的模塊化代碼,爲快速開發新的功能模塊提供支持。系統設計框圖如圖1所示,該系統可分爲應用程序框架(Application-Framework)、插件框架(Plugin-Framework)、圖形界面框架(GUI-Frmaework)和Modules組成。MITK的應用程序框由Blueberry-Framework支持,這是一種集成了C++MicroService、插件系統、GUI系統的應用程序框架,可接入各種封裝了圖形界面的MITK-Modules。CTK(Common Toolkits)是一個專注於DICOM操作和Plugin系統的框架,爲Blueberry提供插件系統的支持;Qt是一款跨平臺的圖形界面框架,爲Blueberry提供豐富的界面系統支持;MITK Modules提供了多種算法庫、數據結構庫、設備驅動庫,大多數的Module都是獨立於界面的,每個模塊只有在它被使用時纔會被構建。MITK的這些Modules大多是對ITK和VTK成熟的算法進行封裝,並沿用了ITK或VTK的算法風格。

圖1  MITK系統平臺框架圖

Fig.1 Medical image Interaction Toolkitsystem structure

 

         通過對系統的分析和抽象,下圖展示了組成MITK系統的各模塊相對關係和層次架構。


圖2  MITK系統抽象模塊結構圖

Fig.2 Medical image Interaction Toolkitsystem abstract module structure

 

         MITK系統中的抽象概念繁多,現挑選重要的概念闡述,數據管理、管線、可視化、交互。

1.1數據管理

MITK中所有的數據對象都存儲在DataNode中,包括圖片、表面、體素,DataNode包含了對象原始數據和渲染屬性、交互屬性以及在空間域、時間域的幾何信息。MITK中DataStorage負責管理當前工程中的所有DataNodes,提供數據對象的增刪改查操作。

1.2算法管線

圖像處理是MITK平臺中最重要的部分,MITK中圖像處理過程採用Pipline管線的思想,與物理的管道不同的是,物理管道只起到內容傳輸作用,軟件中的管線會對內容本身做處理,並將處理後的內容傳遞給接收對象,這樣可以提高算法的複用性,降低各模塊之間的耦合。

Pipline採用惰性求值策略,只有當終端消費者需要最終數據時,管線上各算法模塊纔會運作起來。圖2爲管線運作機制和數據處理的數據模型。

a:(管線運行機制,pipline operation mechanism)    

b:(數據處理的數據模型,data processing data model)

圖2 管線運行和數據模型

Fig.2 Pipline operation and data model

 

1.3可視化管線

MITK的可視化技術沿用VTK的可視化管線思想,並對其做了部分封裝和修改,圖4展示了MITK可視化管線中重要元素與VTK可視化管線中的元素相關關係。

 

圖4 可視化管線

Fig.4 The render system pipline

 

MITK創建了vtkMitkRenderProp,繼承自vtkProp但增加了一些屬性,使之更像vtkPropAsembly。最後渲染丟到VtkPropRender中進行,VtkPropRender繼承自BasesRender,BaseRenderer是集成了vtkRenderWindow和vtkRenderer的渲染器。QmitkRenderWindow是實際進行渲染的窗口。

圖5展示了MITK可視化管線的工作流程。

1.4用戶交互

交互是MITK系統中一個非常重要的概念,因爲系統框架複雜,涉及到許多第三方庫,如何將各種第三方庫、插件成功的集成進來並提供給終端用戶一個簡單方便的使用方法,MITK將這方面工作獨立成一個交互服務(Interaction Service)。

交互概念中一個重要角色是DataInteractor,下圖展示了對於圖形界面的交互事件處理流程。

圖6 對圖形界面進行交互事件處理

 

QT圖形界面的用戶時間觸發被送到MITK渲染器,MITK這一層作爲QT的圖形界面適配層,將事件消息發送到MITK內部的事件分發器,事件分發器這一層由mitk::DataInteractor響應事件。如果DataInactor中已經定義了這個事件,則他會返回該事件變量,更新事件狀態並執行相應的動作。

MITK中處理交互事件的事件處理器有兩類,分別是DataInteractor和InteractionEventObserver。DataInterator將交互事件與唯一的DataNode相關聯,而InteractionEventObserver不會修改任何DataNode。

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章