您當前的位置:首頁 > 攝影

開源醫學影像分析平臺--3D Slicer

作者:由 張良懷 發表于 攝影時間:2021-08-20

今天聊聊3D Slicer,我比較喜歡的一個開源醫學影像分析和視覺化平臺。

從功能層面,它提供非常豐富的互動和視覺化介面,你可以用它匯入醫學影像,然後進行影像的分割、重建、配準、標記點選擇、測量等等操作。它本身提供了非常多的模組,比如優秀的配準模組、齊全的互動分割和重建模組、影象的重取樣、裁剪、濾波等各種操作。

如果自帶的功能滿足不了你的需求,還可以安裝外掛,如下圖外掛平臺有上百個開源外掛,支援各種高階處理;如果仍然找不到你需求的內容,那麼你還可以自己寫外掛,滿足自己的特定需求。

開源醫學影像分析平臺--3D Slicer

slicer外掛管理

從軟體的架構層面,它是一個具有優秀架構的軟體平臺。它的底層基於ITK、VTK和CTK,介面基於QT,都是優秀的開源軟體。

ITK提供豐富的影象分割和配準等大量的醫學影象處理演算法;

VTK則是一種基於opengl的渲染引擎。

CTK為支援生物醫學影象計算的通用公共包。

開源醫學影像分析平臺--3D Slicer

slicer v4的宣傳圖

下圖為slicer的軟體架構圖:

開源醫學影像分析平臺--3D Slicer

3D slicer軟體架構設計-簡版

開源醫學影像分析平臺--3D Slicer

基於slicer的平臺架構圖

slicer的可擴充套件性

有人稱slicer是醫學影像的IDE,之所以這麼說是因為,如果你會程式設計,你完全可以透過程式設計,完全自定義你想要的資料處理流程,做任何醫學影象的分析處理,slicer負責讀取資料給你作為輸入,以及將資料視覺化給你,當然它還提供了大量的基礎影象處理模組供你使用。

實現以上功能,一方面可以透過slicer內建的python終端實現,透過python,可以將slicer中的影響以numpy格式陣列,進行任何你想做的處理;另一方面你可以自己編寫外掛,slicer支援的外掛有多種型別,可以對它的功能進行無限擴充套件。

目前slicer支援一下幾種外掛型別:

Slicer Libs - Slicer Base

Built in modules

C++ loadable modules

:C++編譯生成動態連結庫

CLI modules

Scripted modules

:如python指令碼,最簡單的方式

Daemon

加粗的三種是我們可以作為擴充套件比較常用的三種外掛形式。

開源醫學影像分析平臺--3D Slicer

slicer外掛型別

對於c++ loadable module,我們可以透過修改原始碼對一些公開的extention進行修改後重新編譯並載入到slicer中,具體的流程如下:

開源醫學影像分析平臺--3D Slicer

slicer extention重新安裝流程

slicer還支援一些使用者甚至企業對它進行改造後,形成一個新的自定義的軟體應用,或者是科研合作平臺軟體。因為slicer是完全免費的(遵循BSD協議),且支援商業使用。這一部分可以參考:SlicerCAT: Creating custom applications based on 3D Slicer - Kitware Blog

slicer的應用領域

slicer在醫學影像領域具有非常廣泛的應用,具體的包括:

開源醫學影像分析平臺--3D Slicer

3d slicer的臨床應用

下面具體例舉一下slicer在醫學影像手術規劃和手術導航方面的應用。

下圖為基於slicer做的癲癇灶切除手術:

開源醫學影像分析平臺--3D Slicer

(圖片來源於上海瑞金醫院劉強強醫生在公眾號上的分享:https://mp。weixin。qq。com/s/GxotfwuTNgmdCEU6Z-Hq7A)

手術規劃的關鍵在於給予多模態影響的人體結構3維分割和重建,並透過多模態配準融合技術將多模態影像上分割的不同結構進行融合顯示。醫生在經過豐富重建的人體結構上進行手術規劃與模擬。

下圖為使用silcerIGT進行手術導航:

開源醫學影像分析平臺--3D Slicer

手術導航的核心為空間註冊,即將患者空間和基於影像重建的3維虛擬空間進行空間對齊,從而利用3維重建的人體結構引導手術器械在真實患者上進行操作。

下圖為slicer的神經纖維束追蹤功能:

開源醫學影像分析平臺--3D Slicer

神經纖維束的最終結果能夠反映大腦中神經纖維的走向,在一些腦補疾病診斷、手術規劃(如腫瘤切除時看腫瘤所在區域和哪些功能區相連)等領域都有極大的作用。

slicer有大量的功能和應用場景,具體的內容可以進一步確定slicer的官方文件資料:

https://www。

slicer。org/wiki/Documen

tation/Nightly/Training

後記

未完待續。本章開個頭,後面會繼續分享一些和slicer相關的內容,比如聊聊slicer一些外掛的使用、slicer的核心模組ITK、VTK的演算法原理、slicer的設計理念等等。

優秀的開源軟體值得我們深入研究。歡迎對醫學影像處理領域感興趣的朋友共同學習交流。

標簽: slicer  外掛  醫學影像  手術