1. 程式人生 > >用Matlab處理Dicom影象

用Matlab處理Dicom影象

    最近在處理CT影象時,CT影象是對人體進行逐層掃描的,在影象有很多不需要的部分,比如肋骨部分就夾雜在裡面,導致三維重建出來的影象有很多不需要的部分。很不好處理。

    於是,我就想了了簡單方法,對一張一張的dicom格式的影象,把裡面不需要的畫素點都置為黑色,這樣就可以了。原打算用VC++6.0+VTK來實現的,除錯起來太麻煩了,就直接用matlab來處理就簡單了。

1。讀寫Dicom格式的影象

I=dicomread('E:\CT\37222.dcm');   %讀取影象
metadata = dicominfo('E:\CT\37222.dcm');%儲存資訊
imagesc(I);%顯示影象


dicomwrite(I, 'E:\CT\37222.dcm',metadata);%寫入Dicom影象

2.在Dicom影象上面進行選取需要的矩形區域

這個程式碼實現很簡單,找到這個方法也費了一些波折

[xv,yv] = ginput(2);  %這樣就可以在影象上面選取2個點,將X座標儲存到xv中,將y座標儲存到yv中。

如果有很多點形成一個矩形區域的話,可以用  in = inpolygon(x,y,xv,yv); 來判斷,x,y座標是否在選取的點圍成的區域中。

image