2013-02-21 3 views
0

Вот данные matlab, где я пытаюсь изменить пиксели изображения dicom.Изменение изображения dicom и сохранение его как необработанных данных?

Изображение dicom имеет 4D, 3d для изображения Rgb и другое измерение представляет собой знаменитости. Я беру каждый кадр, и я изменяю некоторые конкретные значения пикселей, и я пытаюсь сохранить их все данные изображения dicom в необработанном формате.

Причина, по которой я сохраняю его в необработанном формате, заключается в том, что я хочу использовать эти данные в качестве файла в команде dcmodify dcmtk. Итак, мой первый вопрос: я сохраняю необработанные данные в правильном формате? Если нет, любезно предложите мне, как я должен это делать. Кроме того, знаете ли вы, может ли 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, но мне еще не удалось сделать это с несколькими образами кадров. –

+0

Возможно, вы захотите запустить первый gdcmconv -raw перед gdcmraw и/или gdcmimg. – malat

0

Вам не нужны исходные данные использовать dmtk: «dcmodify is a tool that allows to modify, insert and delete tags and items in DICOM files.»

Кроме того, исходные данные желательно в очень немногих и конкретных ситуациях, так как некоторые метаданные в файле говоря, что там и как он хранится, помогает много, когда программа должна читать информацию.

Я никогда не использовал dmkt, но я думаю, что вы должны прочитать данные с dicomread (как и вы), изменить его (как и вы), а затем сохранить его в формате DICOM снова dicomwrite

К сохраните метаданные в 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

Таким образом, в каком формате должен сохранить мне данные? –

+0

Я делаю это как сырые данные, потому что в документации указано «-if -insert-from-file: dcmodify -if« PixelData = pixel.raw »file.dcm Вставляет содержимое файла 'pixel.raw' в элемент PixelData из файла file.dcm. Содержимое файла будет считано как есть. Данные OW, как ожидается, будут немного упорядочены по порядку и будут заменены на . Не будет проведено никаких проверок, чтобы гарантировать, что объем данных является разумным с точки зрения других атрибутов, таких как Строки или столбцы. « –

+0

Если возможно, скажите, как я должен действовать по этому вопросу. –