天天看點

VTK讀DICOM頭檔案中醫學資訊

DICOM是醫學圖像和相關資訊的國際标準(ISO 12052), 它定義了品質能滿足臨床需要的可用于資料交換的醫學圖像格式。DICOM被廣泛應用于放射醫療,心血管成像以及放射診療診斷裝置(X射線,CT,核磁共振,超聲等),并且在眼科和牙科等其它醫學領域得到越來越深入廣泛的應用。

VTK提供了2中讀取DICOM資料的方式:vtkDICOMImageReader和vtkVolume16Reader。這兩者的差別為:如果使用vtkVolume16Reader讀資料,則投檔案中資訊會丢失。vtkDICOMImageReader的缺點為如果diocm的壓縮方式等有變化,則不能讀出,但通過SLICER, ITK-SNAP等軟體可以順利打開。其具體機制還需要進一步學習。

(1)vtkDICOMImageReader讀DICOM

可以讀單張圖檔或者讀序列圖檔

vtkDICOMImageReader*reader = vtkDICOMImageReader::New();
reader->SetFileName("E:/memo/Datas/dicom/brain/tutorial/dcm/dcm/dcm_01.dcm");//讀單張切片
reader->SetDirectoryName("E:/memo/Datas/dicom/brain/tutorial/dcm/dcm");//讀序列切片
reader->Update();
           

(2)vtkVolume16Reader讀DICOM

vtkVolume16Reader *reader = vtkVolume16Reader::New();//dcm中頭檔案資訊會丢失
 reader->SetDataDimensions(, ); //設定長和寬
 reader->SetImageRange(, );//設定切片張數
 reader->SetFilePrefix("E:/memo/Datas/dicom/brain/tutorial/dicom/dcm/dcm_");//設定讀取資料的字首
 reader->SetFilePattern("%s%02d.dcm");//檔案命名方式
 reader->Update();  
           

vtkVolume16Reader讀DICOM資料,對資料命名必須有序,否則讀資料失敗。

VTK讀DICOM頭檔案中醫學資訊