2013-02-21 350 views
0

這裏是我正在嘗試修改dicom圖像像素的matlab數據。修改dicom圖像並將其保存爲原始數據?

dicom圖像是4D,3d爲Rgb圖像,其他維度代表fames。我採取每一幀,我修改了一些特定的像素值,我嘗試以原始格式保存整個dicom圖像數據。

我將它保存爲原始格式的原因是我想在dcmtk的dcmodify命令中將此數據用作文件。所以,我的第一個問題是,我是否以正確的格式保存原始數據?如果沒有,請告訴我應該怎麼做。此外,你知道dcmodify命令dcmtk是否可以像這種情況下處理4d數據,或者它只能修改一個單幀?謝謝。

clc 
clear all 
close all 
img=dicomread('Bad001_2CH_01_anon.dcm'); 
%%implay(img); 
[rows,columns,colors,frames]=size(img); 
for i=1:frames 
    img(1:25,:,:,i)=0; 
    disp(i); 
    figure(1) 
    imshow(img(:,:,:,i)) 
end 
fid=fopen('image.raw','w+'); 
cnt=fwrite(fid,img,'uint8'); 
fclose(fid); 

回答

0

你可能想看看gdcmimg和或gdcmraw取決於你真正想做的事

+0

感謝您所說的話,它對於單幀dicom圖像已經非常有用,但是我還沒有設法使用多幀圖像。 – 2013-02-28 15:54:27

+0

您可能希望在gdcmraw和/或gdcmimg之前運行第一個'gdcmconv --raw'。 – malat 2013-03-01 10:46:11

0

你不需要原始數據使用DMTK:「dcmodify is a tool that allows to modify, insert and delete tags and items in DICOM files.

此外,原始數據是極少數和特定情況下理想的,因爲該文件中的一些元數據說的是在那裏,當程序讀取信息時,它的存儲方式會有很大的幫助。

我從來沒有用過dmkt,但我猜你應該讀與dicomread的數據(如你這樣做),修改(如你這樣做),然後將其與dicomwrite

要重新保存爲DICOM保留DICOM中的元數據,您還需要使用dicominfo來提取元數據,以便在保存文件時將其放回原處。

img = dicomread('originalfile.dcm'); 
metadata = dicominfo('originalfile.dcm'); 

% do something with the img 

% save altered DICOM with metadata 
dicomwrite(img, 'processedFile.dcm', metadata, 'CreateMode', 'copy'); 

然後,您可以撥打:

dcmodify [options] writtenDicomFile 

其中writtenDicomFile是您用於保存文件的名稱,並在[選項]指定你怎麼改變文件。

+0

以何種格式應我保存數據? – 2013-02-21 14:26:10

+0

我把它作爲原始數據是因爲文檔中提到「-if --insert-from-file: dcmodify -if」PixelData = pixel.raw「file.dcm 插入文件'pixel.raw'的內容到'file.dcm'的PixelData元素 ,文件的內容將按原樣讀取。 OW數據預計是小尾數排序,如有必要將會被 交換。不會進行檢查以確保 數據量在其他屬性方面是合理的,如 行或列。 「 – 2013-02-21 14:29:55

+0

」如果可能,請親切地說出我應該如何繼續處理此問題。 – 2013-02-21 14:35:40

相關問題