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(256, 256); //設置長和寬
reader->SetImageRange(1, 3);//設置切片張數
reader->SetFilePrefix("E:/memo/Datas/dicom/brain/tutorial/dicom/dcm/dcm_");//設置讀取數據的前綴
reader->SetFilePattern("%s%02d.dcm");//文件命名方式
reader->Update();
vtkVolume16Reader讀DICOM數據,對數據命名必須有序,否則讀數據失敗。