999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ITK和VTK及其應用新進展

2009-01-01 00:00:00周振環吳建華夏侯春洪
計算機應用研究 2009年6期

摘 要:在國外,基于ITK和VTK的3D Slicer和IGSTK兩個軟件主要應用于為醫學圖像分析、圖像導航手術和微創手術。對ITK和VTK的現狀、安裝、開發技術作了詳細的綜述,并介紹了3D Slicer和IGSTK的主要功能和臨床應用,為圖像引導臨床診斷的研究應用指明方向。

關鍵詞:ITK;VTK;醫學圖像;圖像處理;3D Slicer;IGSTK

中圖分類號:TP391.41文獻標志碼:A

文章編號:1001-3695(2009)06-2027-05

doi:10.3969/j.issn.1001-3695.2009.06.008

ITK,VTK and their application of new progress

ZHOU Zhen-huan1,XIAO Ru1,2,WU Jian-hua2,ZHAO Ming1,XIAHOU Chun-hong1,2

(1.College of Electronics Information Engineering, Shenzhen Polytechnic, Shenzhen Guangdong 518055, China;2.Graduate School, Nanchang University, Nanchang 330031, China)

Abstract:At abroad, 3D Slicer and IGSTK based on ITK,VTK mainly used for medical image analysis, image guided surgery and minimally invasive surgery. The paper reviewed the status,installation,technical developmentof ITK and VTK in detail and introduced 3D Slicer and IGSTK’s main functions and clinical application as well as indicate the direction to image guidance for the clinical diagnosis of application.

Key words:ITK;VTK;medical image;image process;3D Slicer;IGSTK

隨著信息技術迅速積聚和醫學發展的需要,對各種醫療設備需求急速增加。我國許多醫療設備都依靠進口,價格昂貴、信息不流通,這給醫學的發展帶來障礙,也不利于廣大患者的治療。因此許多科研工作者都在不斷致力于醫療設備的開發。ITK和VTK功能強大、資源開放,提供了一個很好的開發平臺,已經有一部分人將ITK和VTK應用到醫學圖像分割、三維重建中,開發了一些醫學圖像處理平臺,但是目前開發的軟件應用比較分散或者不斷重復其他人的工作,這些都不利于科研開發和創新。

1 ITK和VTK的歷史和現狀

1989年,美國國家醫學圖書館(National Library of Medicine,NLM)進行人體可視化項目的研究[1],想要開發一個分割與配準的程序包,作為visible human項目的一個工具。ITK就是源于這個項目而形成的。ITK是一個開放源碼的類庫,所以它既可以自己維護,又可以供使用者和開發者不斷交流,從而不斷擴充該軟件。ITK 實現了大部分的分割和配準算法,形成一個算法倉庫,避免重復勞動,減少開發者的障礙。它主要用于圖像導航手術、計算機輔助診斷、外科手術規劃、放射治療和通用醫療上。ITK 采用C++ ANSI標準,基于范型編程思想,模板的大量應用是它的一大特色。

1993年12月,GE RD部門的Will Schroeder等人著作的《The visualization toolkit:an object-oriented approach to 3D graphics》,將VTK作為這本書的配套軟件贈送。1998年,此書發行第二版。此后,使用VTK的人數不斷增加,形成了一個社區。VTK也以open source的形式開發,全世界的開發人員都可以貢獻自己的力量,目前已經成為有名的可視化領域的開發工具[2],它以CVS的方式進行因特網上的聯合開發。

VTK和ITK已經引起了國際上對toolkits開發的關注。SPIE Medical Imaging 2004年的年會上有一個專門的session,叫做visualization toolkits,專門探討醫學影像領域內算法開發平臺的研究。MICCAI2003會議上有一個專門的workshop,叫做software development issues for medical imaging computing computer assisted interventions。國際上一些平臺(德國漢堡大學Voxel Man、美國UPenn的3DVIEWNIX、Viewer(Syracuse University)、 Stony Brook的VolVis)涉及到VTK。在國內,有人開始利用ITK和VTK開發醫學圖像處理平臺,如MITK[3]。

2 ITK和VTK 的安裝和使用

ITK具有圖像分割和配準的功能,卻不能顯示,而VTK具有可視化功能。ITK和VTK有一個共同的特點是它們都不提供用戶接口(UI)。用戶可以根據實際操作系統或實際需求來選擇UI。本文選擇在Windows操作系統下、Visual Studio 6.0編譯工作環境中安裝ITK和VTK。2.1 在Windows上的安裝和使用[1,2]

1)準備工作 因為ITK和VTK類很多,所以要利用CMake軟件進行編譯。首先從http://www.cmake.org下載cmake-2.4.3-win32-x86.exe,并在C:\\Program Files\\CMake 2.4路徑進行安裝(cmake、VC6.0、ITK安裝文件、VTK安裝文件最好在同一目錄下,這樣編譯時系統更好尋找路徑);然后從 http://www.itk.org 下載兩個文件,分別是InsightToolkit-2.4.0 (主要ITK 的安裝文件)與InsightApplications-2.4.0 (主要是用于鏈接VTK與ITK);接著從http://www.vtk.org下載vtk-5.0.3.zip、vtkdata-5.0.0.zip、vtk-5.0.0-win32.exe。

2)ITK的安裝 因為VC安裝在C:\\Program Files\\Microsoft Visual Studio上,所以將ITK放在同一目錄。如果在C盤創建新文件夾名為C:\\Program Files\\ITK,將下載的兩個壓縮文件夾解壓在ITK總文件夾中。將解壓后的文件夾InsightToolkit-2.4.0重新命名為InsightToolkit并對它進行編譯。在ITK主文件夾中新建一個文件夾,取名為bin 。打開CMake對ITK進行編譯,編譯環境默認為Visual Studio 6.0,其他選項按照下面路徑地址填寫。BUILD-EXAMPLES\\BUILD-SHARED-LIBS\\BUILD-TESTING 這三個選項都選擇off;cmake-install-prefix 這個選項選擇編譯ITK的總目錄C:\\Program Files\\ITK。點擊configure 生成相關的工程,當紅色選項都變成灰白色后點擊CMake的ok鍵。

運行Microsoft Visual C++ 6.0,打開C:\\Program Files\\ITK\\bin進行編譯。根據上面選項選擇的on/off不同,編譯時間也會不同。如果選擇ITK 選項中的EXAMPLES和生成動態LIB文件的選擇on,編譯時間則相對較長,生成的庫也比較大。完成后可以打開C:\\Program Files\\ITK\\bin\\INSTALL.dsp文件。執行這一步的目的于使編譯結果安裝在cmake_install_prefix 設定的目錄下。至此ITK的安裝正式完成。

3)VTK的安裝 新建一個文件夾C:\\Program Files\\VTK,把vtk-5.0.0.zip解壓到C:\\Program Files\\VTK\\VTK,把vtkdata-5.0.0.zip解壓到C:\\Program Files\\VTK\\VTKDATA,并且在C:\\Program Files\\VTK中建立一個新文件夾bin,作為編譯程序存放的路徑。執行vtk-5.0.0-win32.exe,安裝目錄為C:\\Program Files\\VTK5.0。然后需要重新用CMake編譯一下VTK,源代碼路徑為C:\\Program Files\\VTK\\VTK ,編譯目的地址為C:\\Program Files\\VTK\\bin(編譯時,把Show Advanced Values 打上勾)。

修改以下參數:build_examples,是否編譯VTK中的例子,選off;build_testing,它是VTK測試代碼,與build_examples類似,選off;build_shared_libs,若選為off,只生成lib文件,若選為on,還生成dll文件;cmake_install_prefix,它是安裝VTK的路徑,安裝的好處就是可以從1 GB多的文件中提取出.h.lib.dll等精華,安裝在指定目錄下,并修改系統環境變量;vtk_data_root,CMake可以自己找到vtkdata的路徑,但如果沒有,把C:\\Program Files\\VTK\\vtkdata\\填上即可,告訴CMake,VTK需要的數據都在哪里;vtk_use_parallel,對于想用VTK進行并行計算,選擇on,否則保持off;vtk_use_guisupport,必須設置為on,再次configure之后,會出現一個新的選項vtk_use_mfc,也設為on。

在cmake中有些選項是依賴于另一些選項,如vtk_use_guisupport和vtk_use_mfc,當禁用vtk_use_guisupport,vtk_use_mfc 是看不到的。修改完CMake選項以后,不停地按configure按鈕,直到沒有選項顯示為紅色,而且此時,點擊ok按鈕,即可以生成VC的工程文件。打開bin目錄下的vtk.dsw文件后,直接build。再次打開bin目錄下的vtk.dsw文件,在Bulid->Set Active Configuration中,設置為ALL BUILD-WIN32 RELEASE。再build一次,然后拷貝C:\\Program Files\\VTK\\bin\\bin\\Release到C:\\windows\\system32 中。關閉后重新打開bin目錄下的install.dsp文件,直接build,編譯結果就會安裝在cmake_install_prefix設定的目錄下。

為VC++加入相應的庫文件和.h文件。添加庫文件:打開VC++的Tools ->Options ->Directories,選library,把C:\\Program Files\\VTK\\bin\\bin\\Debug添加進去。添加Include文件:打開VC++的Tools ->Options ->Directories,選Include Files,把C:\\Program Files\\VTK文件夾下的Common、Filtering、Graphics、Hybrid、Imaging、Parallel、Rendering、bin文件添加進去。至此,VTK安裝完成。

4)ITK與VTK的鏈接 本文應用InsightApplications-2.4.0來進行ITK與VTK的鏈接。在ITK主文件夾中新建文件夾命名為InsightApplications-bin。運行CMake,Score code選項填寫解壓后InsightApplications的路徑,build the binaries選項添加在新建立文件夾InsightApplications-bin的路徑。首先,cmake-install-prefix 這個選項選擇的路徑是InsightApplications 和InsightApplications-bin 所在的路徑是ITK主文件夾的文件路徑。其次,executable-output-path路徑這里設置的是C:\\Program Files\\ITK\\bin\\bin。C:\\Program Files\\ITK\\bin\\bin文件夾是當編譯過itk.dsw后生成的,編譯后在ITK這個主目錄下依次尋找可以找到。Itk-dir路徑的設置為C:\\Program Files\\ITK\\bin。LIBRARY-OUTPUT-PATH這個選項填寫的依然是C:\\Program Files\\ITK\\bin\\bin。最后,vtk-dir路徑為C:\\Program Files\\VTK\\bin,而后configure、ok。再打開CMake選擇InsightApplications,原來設置好的就會保存下來,主要看CMake中cmake-install-prefix、executable-output-path、LIBRARY-OUTPUT-PATH、vtk-dir 這幾個選項的路徑是否與上面所說的設置保持一致,如不一致調整至上面所說的路徑設置。再次configure、ok,鏈接成功。運行Microsoft Visual C++6.0,打開C:\\Program Files\\ITK\\InsightApplicationsbin\\ itk.dsw 進行編譯,然后運行C:\\Program Files\\ITK\\InsightApplicationsbin\\install.dsp。 此時InsightApplications 安裝成功,可以進行ITK與VTK的混合編程。

從安裝過程可以看出,ITK和VTK的選項安裝路徑過多,很容易出錯。當最后發現安裝失敗時卻無法找出錯誤。本文以解釋的方式一步一步介紹,目的在于給讀者一個清晰的思路和參照。

5)ITK和VTK的混合使用 上面的安裝成功使得ITK和VTK進行混合編程。因為VTK已經將它的庫文件和Include文件添加到VC中,但是ITK和VTK的鏈接文件卻沒有包含進去,所以首先要將C:\\Program Files\\ITK\\InsightApplications\\Auxiliary\\vtk添加進去。在一個新文件夾中建立CMakelists.txt和.cxx文件,本文以Connec-tedThresholdImageFilter “Connec-tedThresholdImageFilter.cxx”為例,完成圖像分割。打開CMake, 選擇建立的源文件目錄和目標文件目錄地址為兩個參數(可以選擇同一個地址),點擊configure進行設置, 設置完成后點擊ok來生成工程文件。打開ConnectedThresholdImageFilter所在的文件夾,運行VC, 選擇ALL_BUILD,然后build,生成執行文件后,使用BrainT1Slice.png 來運行, 不同閾值的設定實現了不同目標分割,并在窗口中顯示圖像,如圖1~3所示。

2.2 Tcl/Tk和C/C++

C++是一門通用系統程序設計語言,它兼容C語言,支持數據抽象、面向對象程序設計和范型程序設計。數據封裝和隱藏、強類型、系統性強是C++語言中的一大特點。其主要用于服務器軟件、網絡底層、驅動程序、圖像處理軟件、視頻播放器、嵌入式設備諸多對運算時間、運行空間要求比較嚴格的場合。

Tcl(tool command language)是一種開源的動態腳本語言[4],通用語言,易配置、易擴展、具有柔性化,常用于單元測試、集成測試和自動化、Web程序和桌面GUI應用程序、數據庫、嵌入式開發、網絡、管理等領域。Tk是一種圖形用戶界面的工具,比傳統方法更能把對桌面應用程序的開發推向更高層次;它是一種標準GUI,不但支持Tcl,而且支持許多其他的動態語言,也能編制出高效、自然易懂、兼容多平臺(如Windows、Mac OS、Linux等操作系統)的腳本語言。Tcl/Tk與C/C++相比[5],C++比Tcl/Tk的速度快、代碼維護性更好、內存資源占用較少,但是調試復雜,難以掌握;Tcl/Tk則簡單易學、測試簡單、具有很好的可移植性,但是速度較慢、內存占用較多。大多數計算機平臺同時使用Tcl/Tk和C/C++。Tcl/Tk側重于組裝組件到應用,C/C++偏向于系統的開發,因此可以用C/C++產生組件,然后用Tcl/Tk把它們組裝起來,更加快速、靈活地實現應用程序的開發。為了將Tcl/Tk與C/C++結合使用,不僅需要解決Tcl/Tk和C/C++的接口問題[6],而且需要一個在VC編譯環境下進行參數設置。將Tcl/Tk在Microsoft Visual C++ 6.0上使用,首先從http://www.activestate.com下載ActiveTcl,解開壓縮文件后有一個子目錄“win”;然后可以打開tcl.dsw,或從命令行輸入buildall.vc.bat。Tk的編譯類似,但一定要先編譯好Tcl,并指定好編譯好的Tcl文件的路徑才行。詳細請參考win目錄下的README文件。

2.3 ITK和VTK源代碼開發方法

ITK源代碼基于C++語言,并采用范型編程。范型(genericity)是指在多種數據類型上皆可操作。它可以一個或多個類型疊加來重新定義類型,所以從理論意義上講,ITK可以創建任何格式的圖像,代碼的重復使用使得其效率得到提高。在ITK中建立一個文件,一般包括兩個文件,即頭文件和執行文件(.cxx或.txx),然后還要包含一個CMakeLists.txt文件利用CMake進行連接。ITK通過reader讀入數據,然后filter object載入數據并進行處理操作,新的數據通過writer寫到文件中。

VTK是一個面向對象的系統,主要采用C++設計,允許使用Java、Tcl和Python等解釋型語言。VTK的兩個對象模型是圖形和可視化。VTK中有一些基本的對象(如光照、相機、繪制窗、映射、查找表等),利用這些對象產生一個場景。VTK的reader對象讀取數據或者構造數據,然后通過filter 進行處理,新的數據通過write寫入文件或流中。可視化流水線負責構成幾何表達,然后由圖形流水線來繪制。VTK使用數據流方法將信息變換成圖形數據,2D(圖像)和3D(體素)數據均看成是vtkImageData。VTK支持廣泛的圖像處理和體素繪制功能。 

3 ITK和VTK源代碼開發技術

3.1 ITK、VTK圖像格式及相互轉換

從應用的角度來看,ITK、 VTK不僅支持讀寫JPEG、BMP、PNG、TIFF等常用圖像格式,還提供了DICOM醫學圖像格式的支持。從ITK的內部結構而言,ITK并不是支持任何格式的圖像文件,而是提供了轉換格式的方式和一些基本的子類。ImageIO類包括很多子類,如PNGImageIO、VTKImageIO、MetaImageIO、DicomImageIO、RawImageIO、VOLImageIO、GiplImageIO類等。

ITK讀取一幅圖像,首先由itk::ImageFileReader類捕獲;然后由ImageIO類尋找與圖像格式匹配的子類,找到原圖像格式的子類后返回指向該子類的指針,創建該圖像格式的實例;最后返回給itk::ImageFileWriter。用戶可以自己創造新的圖像格式的子類。了解ITK的圖像讀寫機制后,就不難完成不同格式的轉換。ITK基于編程范例類,大多數類型定義在編輯時間上,所以可以預見不同圖像之間的轉換。首先模板定義要輸入的圖像格式類型為輸入類型,轉換后的圖像格式類型為輸出類型,利用RescaleIntensityImageFilter類定義一個濾波器調節輸入/輸出參數改變,從而完成圖像的格式轉換。

在VTK中,圖像數據作為一種特殊的數據類型有多種不同的處理和顯示方式。圖像數據的特點是拓撲與幾何都是規則的,其數據排列完全由origin(起始位置)、spacing(空間間距)、dimensions(三維范圍)這幾個參數來決定。vtkStructuredPoints結構化點集是VTK中表示圖像數據的惟一方式。通常VTK讀入一幅圖像時,首先會將圖像文件轉換為結構化點集的數據格式,然后再對這種結構化點集數據進行處理。

在VTK中,圖像的來源有兩種,一種是從磁盤文件中讀取,另一種是用特定的圖形繪制函數來繪制。在VTK中,它提供了豐富、靈活的用于讀取各種數據格式的文件及其相互轉換的類,如從vtkImageReader繼承而來的各種用于讀取圖像的類,vtkBMPReader(位圖讀取類)、vtkJpegReader(JPEG圖像讀取類)、 vtkTIFFReader(TIFF圖像讀取類)、vtkPNMReader(讀PNM(pnm、pgm、pbm)類)等。也可以擴展基類vtkImageRea-der、vtkImageWriter以增加讀寫其他格式圖像的類,如vtkDicomReader、vtkDicomwriter等DICOM 3.0標準的醫學圖像等。同樣,在VTK中,將眾多常用的圖形操作以及圖像處理算法封裝成不同的類,非常易于理解和調用。

3.2 DICOM圖像的讀和寫

DICOM(digital imaging and communications in medicine)是醫療設備的國際標準通信協議,是數字醫學圖像的網絡通信接口標準,它為在不同醫療設備之間對醫學圖像等數字信息進行各種命令操作定義了統一的規范。目前,醫學圖像的種類很多,包括B超、磁共振(MRI)、CT、DSA、PET、SPECT、數字X光機、X射線透視、各種電子內窺鏡、顯微鏡下病理切片圖像等,但都以DICOM標準來保存顯示。

在ITK中,DICOM的范函性由GDCM庫提供。利用ITK可以讀寫單個DICOM切片,使用GDCMImageIO對象作為被itk::ImageFileWriter使用的ImageIO的對象連接。在臨床應用中最普遍的數據表示是用DICOM切片集去組成三維空間圖像,ITK讀2D DICOM序列圖像并寫入體數據,利用itk::GDCMSeriesFileNames對象確定一個測定體積的數據切片。另外,ITK可以從DICOM文件中獲取DICOM的標簽或者改變頭文件信息。因為DICOM文件中病人信息非常精確,所以在編寫程序的同時要保證安全性。

VTK 5.0可直接讀取該格式文件。vtkDICOMImageReader實現讀取一個文件夾內的DICOM文件。該部分被封裝為Reconstruction 類的一個成員函數Set-DCMDirectory(char*sdir)。其中參數sdir 為DICOM文件的文件夾路徑。

3.3 三個正交面顯示和3D繪制

圖像三個正交面是橫斷面、矢狀面和冠狀面[7]。將Z方向中間層圖像提取出來,二維圖像就是橫斷面;將X方向中間層圖像提取出來,二維圖像就是矢狀面; 將Y方向中間層圖像提取出來,圖像就是冠狀面。對體數據圖像進行切片有兩種方式:

a)用一個平面對圖像進行切分,平面上會有體數據上的圖像信息,這一方式得到的數據為PolyData 數據,并不是普通的圖像文件數據,只能保存為VTK 格式文件。其占用空間大,且格式不通用。

b)將體數據旋轉,用vtkImageReslice濾波,重新生成體數據, 然后定義切平面,設置切平面的法向量,新建vtkVolume-RayCastMapper對象,SetCroppingRegionPlanes()表示對體數據切取的范圍,由其中的六個參數表示,分別代表XYZ軸上切取的數據范圍,調用函數AddClippingPlane()實現對體數據的切割,得到圖像的切片數據。這樣得到的切片可以保存為普通圖像文件。

最簡單通用的可視化技術是通過標量值或顏色投射的色彩對象。其思想很簡單:通過一個查找表投射標量值來得到一個顏色,而且在繪制過程中顏色被用于修改點或者單元的外觀。三維繪制[8]通常可分為面繪制(surface rendering) 和體繪制(volume rendering)。體繪制根據不同的光照模型有多種算法,如基于空間域的光線投射法、足跡表法、剪切曲變法,基于硬件的3D紋理映射以及基于變換域的頻域體繪制等。經典的體繪制方法是光線投影法。光線投射算法(ray casting)是直接體繪制中最為常用的算法,是像序體繪制方法的代表。它從每個像素發出(至少)一條光線,穿過體數據空間,在光線與體空間的交點之間等距地進行采樣,對每個采樣點通過三線性或更高次插值計算求出其數據,再計算在給定的光學模型中的光強,并與前面的采樣點結果合成。對每一個像素進行如上計算,最終得到整幅圖像。該算法涉及三種計算函數,封裝在合成體繪制函數(vtkVolumeRayCastCompositeFunciton)、最大密度投影(vtkVolumeRayCastMIPFunction)、等值面探測函數(vtkVolumeRayCastIsoFunction)中。

面繪制法主要分為基于斷層輪廓線的方法和基于體素的方法。在面繪制的方法中,經典的算法有移動立方體(marching cubes)方法。其基本思想是:將三維數據網格分成許多體元,根據物體表面特征的信息,給出物體等值面的相關參數值,再逐個測試體元的八個角點是否在等值面上,通過線性插值得出體元中的哪些點在等值面上,用連接這些點得到的三角形或多邊形來代替立方體,由這些全部的三角形或多邊形得到三維數據場的三維表面信息。該算法用vtkMarchingCubes類設定等值面的值,調用vtkPolyDataMapper函數進行映射處理,利用vtActor、vtkRender類顯示出來。

3.4 圖像分割

所謂圖像分割是指將圖像中具有特殊含義的不同區域區分開來,這些區域是互相不交叉的,每一個區域都滿足特定區域的一致性。ITK研究平臺提供一套基本的算法[9],用來開發和定制一個完全的分割應用。主要算法有區域生長、基于分水嶺、快速步進分割、形態檢測分割、測量主動輪廓分割、Canny邊緣水平集分割、模糊連接度和置信連接度混合分割、模糊連接度和Voronoi分類分割、特征提取法等。

3.5 圖像配準

圖像配準是指對于一幅圖像尋求一種空間變換,是該圖像與另一幅醫學圖像中的對應點達到空間上的一致。利用圖像配準進行圖形分割,從不同圖像的模式中得到相關的信息,有利于觀察病情和治療的進展,廣泛地應用于臨床和研究醫學中。它可以分為同一/不同對象配準、單個/多模配準。

配準框架是基于配準算法集合的通用框架。首先把一幅圖像作為固定圖像,另外一幅圖像進行插值運算;然后將兩幅圖像進行相似性匹配,將匹配后的結果進行優化運算,再反饋到圖像插值運算上,改變變換參數,直到兩幅圖像達到某種標準,完全匹配。ITK提供了多種變換,從簡單平移、縮放到一般的核心仿射變換。主要算法[9]有監控配準、多形態配準、居中變換、多分辨率配準、內插法、尺度、優化配準、結合預先知識的剛性配準、可變形配準、虛擬變形配準、點集配準等。

4 ITK和VTK應用軟件分析

4.1 3D Slicer和IGSTK

3D Slicer是免費開源的軟件包[10],主要用于圖像的可視化和分析。它可以在Windows、Linux和Mac Os X.等平臺使用。美國國立衛生院(NIH)等參與了該軟件的開發。在國外,Slicer已經在導航手術理論領域起著關鍵作用,而且隨著醫學圖像導航領域的不斷應用而擴大。在圖像導航理論領域,Slicer頻繁地用于重建和可視化方面,并在術前和術中采取實時跟蹤。Slicer除了可以重建常規的MRI圖像外,還能顯示來自fMRI、DTI的圖像和心電圖。Slicer D代碼大部分有C++設計,并且基于VTK、ITK的設計,也包含一些Python/Tcl、MATLAB等代碼。VTK雖然基于C++代碼,但是提供了一個Tcl封裝可以使用Tcl算法,Tcl/Tk組成了3D Slicer其他的用戶接口和事件處理。

IGSTK(image-guided surgery toolkit)提供圖像導航手術應用的基本軟件包[11],是基于C++開發設計的類庫。IGSTK利用CMake連接不同的平臺,支持跨平臺使用。因為它是開源的,所以全世界的人都可以使用、調試、維護和擴展。IGSTK是基于范型編程的,重在交流和測試,也正是這個原因使得IGSTK不斷強大。IGSTK是建立在ITK、VTK、FLTK、Qt軟件的基礎之上,在某些方面產生了更好的效果。

4.2 圖像格式及轉換

3D Slicer支持大多數標準圖像格式(netCDF、HDF、BMP、DICOM、DIB、JPG、PICT、TIFF、CLP、EPS、WMF)。格式轉換可在濾波模塊中完成。因為IGSTK只用于醫學圖像的處理,所以它只支持DICOM圖像標準。

4.3 主要功能模塊和臨床意義

3D Slicer的功能模塊包括:a)讀寫DICOM格式的圖像和一些其他格式;b)圖像交互可視化、三維模型的表面繪制、體繪制;c)人工操作、量化分析;d)融合、使用剛性和非剛性算法的配準;e)自動分割; f)分析和顯示擴散張量成像數據;g)圖像引導程序的跟蹤。3D Slicer既可用于醫學算法研究方面[12],又可用于醫療臨床。T. M.Ngo等人[13]設計了基于3D Slicer軟件的互動GUI模塊。在圖像引導的治療研究方面,Slicer用于構建和顯示術前和術中的MRI數據,以獲得跟蹤器的空間坐標。有人綜合3D Slicer與一個MR掃描儀[14],以手術前的數據加強術中的成像。隨著手術的進展,同樣的手術前的數據分析可以適用于探索的解剖變化,實時掃描的同時伴隨著手術前切片和曲面模型的查看。在布萊根婦女醫院,該系統已應用在超過20個神經外科案例,并在繼續使用中。Slicer可以用于不同的醫療情況,包括自閉癥、多發性硬化癥、狼瘡、精神分裂癥、骨科增生、慢性阻塞性肺疾病、心血管疾病和神經外科手術。

IGSTK的結構中狀態機的設計[15,16]是一大特色。狀態機具有安全的可靠性和一體化模式,其設計清楚、API簡單,對代碼的質量進行控制。另一方面,IGSTK基于組件疊加的架構,由狀態機管理下的每個組件都有其自己的功能模塊。IGSTK由八個組件實現主要功能:a)顯示模塊。顯示二/三維圖像、病人信息和交互繪制。b)幾何表達。 包括基本的幾何形狀和復雜的形狀如血管、超聲波探頭等,主要用于圖像引導手術現場的虛擬操作。c)可視化表達。包括顏色、表面反射度、線的粗細、分辨率等,用于探索更有效的方法來構建手術場景。d)跟蹤。跟蹤醫療器械或者三維空間解剖結構的位置和方向。e)數據讀入。支持CT/MRI圖像的DICOM格式、網格、標記文件讀入。f)標記。手術前對病人進行標記,手術中根據原來的標記點進行配準。g)基礎結構。定時、協調不同組件之間的工作,提供狀態機的編程框架。h)服務。溝通各個組件的工作,如任務運行時發送日志以便調試、性能顯示、優化設計。

IGSTK的核心是魯棒性,它提供強大的功能,如讀寫數據、可視化、配準、提供用戶界面;可以DICOM格式標準讀取和顯示CT和MRI圖像。它是一個圖形用戶界面和可視化能力,包括一個四象限視圖(軸向面、矢狀面、冠狀面和3D)以及一個多層軸視圖(從1×1到10×10),選擇不同的點并基于點配準;擁有強大的內部軟件測試、異常處理、問題解決方案服務。

IGSTK臨床應用主要有穿刺活檢、超聲波引導射頻消融治療、機器人輔助針檢等圖像引導手術方面。在射頻消融(RFA)應用[17]中,IGSTK對超聲波探針的三維跟蹤并利用二維超聲波圖像進行體繪制。盡管在手術中有呼吸、心臟運動、探針壓力等外在因素影響,IGSTK能夠有效地重建活的肝臟三維圖像。IGSTK可以在術前、術中進行US/CT/MRI圖像融合,也可以應用于圖像引導的穿刺活檢實例[18]。在喬治敦大學醫學中心,該軟件目前正在用于圖像引導手術和電磁跟蹤肺穿刺活檢臨床實驗[19]。2006年IGSTK在SPIE圖像處理會議中的ITK項目中提取,與此同時進行了演示實驗;2008年2月,它再次在SPIS圖像處理會議上對動物進行臨床演示。

5 結束語

VTK和ITK熟練地解決了圖像讀取和分割、配準、繪制顯示等問題。基于VTK、ITK再開發的軟件充分利用它們的優點并與實際應用結合起來,設計不同需求的新軟件。3D Slicer和IGSTK是國外的醫學研究和導航軟件,它們雖然基于VTK和ITK,卻有著不同的設計思想和應用方向。在VTK、ITK類庫的基礎之上設計和開發的軟件系統在實際應用中顯示了較強的功能, 其設計和開發理念對開發醫學圖像導航相關軟件具有很好的啟發、參考作用。現在圖像處理的各個方面日趨成熟,利用計算機技術開發的圖像引導的手術診斷系統正在快速發展,使得真正的微創手術逐漸應用到實際醫療診斷中,為醫學的發展提供了一條重要途徑。

參考文獻:

[1]IBANEZ L,SCHROEDER W,NG L,et al.ITK software guide second edition updated for ITK version 2.4[EB/OL].(2005-11-21)[2008-07-15]. http://www.itk.org/ItkSoftwareGuide.pdf.

[2]SCHEROEDER W J,AUILA L S,HOFFMAN W A,et al.The visua-lization toolkit user’s guide[M].[S.l.]:Kitware Inc Press,2006.

[3]趙明昌,田捷,薛健,等.醫學影像處理與分析開發包MITK的設計與實現[J].軟件學報,2005,16(4):485-495.

[4]Tcl Developer Xchange Site.Tcl tutorial[EB/OL].(1997)[2008-07-15].http://www.tcl.tk/man/tcl8.5.

[5]OUSTERHOUT J K.Scripting:higher level programming for the 21st century[J].IEEE Computer,1998,31(3):23-30.

[6]梁偉杰,蔣科藝,呂劍鋒.Tcl/Tk命令與C/C++的集成研究[J].微計算機信息,2006,22(9):79-81.

[7]徐人鳳,周振環.面向對象的醫學圖像工作站[J].計算機工程與應用,2006,42(28):214-217.

[8]廖其光,鮑蘇蘇,潘家輝,等.基于VTK肝臟三維模型可視化研究與實現[J].計算機與數字工程,2008,36(2):102-104.

[9]周振環,王安明,王京陽,等.醫學圖像分割與配準[M].成都:電子科技大學出版社,2007.

[10]Slicer 2.6 getting started[EB/OL].[2008-07-15].http://www.slicer.org/pages.

[11]IGSTK Corporation.IGSTK:tutorial[EB/OL].[2008-07-20].http://public.kitware.com/IGSTKWIKI.

[12]MADDAH M,ZOLLEI L,ERIC W L,et al.A mathematical framework for incorporating anatomical knowledge in DT-MRI analysis[C]//Proc of the 5th IEEE International Symposium on Biomedical Imaging.2008.

[13]NGO T M,WESTIN C F,GOLLAND P.A white matter stochastic tractography system[C]//Proc of the 5th IEEE International Symposium on Biomedical Imaging.2008.

[14]CHINZEI K,HATA N,JOLESZ F A,et al.MR compatible surgical assist robot:system integration and preliminary feasibility study[M].Berlin:Springer,2004:921-930.

[15]PENG Chen-ga,ZHANG Hui,KIM H S,et al.IGSTK:framework and example application using an open source toolkit for image-guided surgery applications[C]//Proc of SPIE Medical Imaging vol 6141.2006:590-598.

[16]CLEARY K,Insight Software Consortium.IGSTK:the book[EB/OL].(2007-02-02)[2008-07-15].http://www.igstk.org/documentation.htm.

[17]GARY K,BLAKE M B,IBANEZ L,et al.IGSTK:an open source software platform for image-guided surgery[J].IEEE Computer,2006,39(4):46-53.

[18]ESTEPAR R S J,STYLOPOULOS N,ELLIS R,et al.Towards scarless surgery:an endoscopic ultrasound navigation system for transgastric access procedures[J].Computer Aided Surgery,2007,12(6):311-324.

[19]NDI Corporation.IGSTK:an open source software toolkit for image-guided surgery[EB/OL].(2007-10)[2008-07-20].http://www.ndigital.com/medical/infocus/2007-10/article-4.php.

主站蜘蛛池模板: 欧美精品亚洲二区| 国产精品99一区不卡| 福利在线不卡一区| 国产成人精品免费视频大全五级 | 成年片色大黄全免费网站久久| 亚洲天堂免费在线视频| 日本人又色又爽的视频| 亚洲Aⅴ无码专区在线观看q| 人妻无码AⅤ中文字| 美女扒开下面流白浆在线试听| 精品撒尿视频一区二区三区| 日韩精品少妇无码受不了| 久热re国产手机在线观看| 日日碰狠狠添天天爽| 免费在线观看av| 国产中文一区二区苍井空| 少妇人妻无码首页| 狠狠v日韩v欧美v| 国内精品免费| 久久婷婷国产综合尤物精品| 欧美亚洲第一页| 亚洲婷婷丁香| 狠狠色狠狠色综合久久第一次| 伊人久久婷婷| 国内精自线i品一区202| 欧美日韩精品一区二区在线线 | 婷婷午夜影院| 亚洲精品男人天堂| 国产成人AV大片大片在线播放 | 日韩成人高清无码| 久久a级片| 日韩无码视频网站| 欧美日韩动态图| 久久久四虎成人永久免费网站| 国产在线97| 伊人激情综合| 久久99国产乱子伦精品免| 日韩av高清无码一区二区三区| 午夜精品国产自在| 国产日韩精品欧美一区喷| 亚洲第一视频网| 久久国产精品电影| 日本人又色又爽的视频| 亚洲第一中文字幕| 国产亚洲高清在线精品99| 免费一级α片在线观看| 国产成人精品18| 欧美精品黑人粗大| 国产欧美日韩专区发布| 欧美自慰一级看片免费| 四虎综合网| 精品国产中文一级毛片在线看| 精品国产自| 丝袜高跟美脚国产1区| 国产一级视频在线观看网站| 色综合天天综合| 午夜一级做a爰片久久毛片| 国产精品免费露脸视频| 日韩无码视频播放| 人人爽人人爽人人片| 亚洲丝袜中文字幕| 国产后式a一视频| 日韩精品无码免费专网站| 国产精品久久久久婷婷五月| 一本大道东京热无码av| 亚洲色图欧美在线| 精品99在线观看| 一级毛片免费观看久| 国产综合精品一区二区| 亚洲第一视频网站| 国产欧美日韩va| 精品少妇人妻av无码久久| 国产在线高清一级毛片| 成人免费视频一区二区三区 | 91欧美亚洲国产五月天| 香蕉伊思人视频| 国产国产人成免费视频77777| 免费看美女自慰的网站| 最新亚洲人成无码网站欣赏网| 国产精品成人第一区| 97综合久久| 日韩av在线直播|