how can I display multi frame DICOM images?

I have a DICOM multi-frame with 36 frames and I want to see the "dynamic" image in Matlab. However, it only shows the 1rst frame.
What can I do?

2 Kommentare

Rik
Rik am 12 Jun. 2018
What function are you using? Also, did you try with imshow and sum as this question suggests?
It all depends on your data structure. If you load the DICOM images to a 3D matrix, you can simply use sum.
Margarida Moura
Margarida Moura am 13 Jun. 2018
Bearbeitet: Walter Roberson am 13 Jun. 2018
I'm using a 4D uint16 structure 128x128x1x36, and the purpose of my project is to open the DICOM file in MATLAB and then define ROIs. All I want is the sum of the 36 frames that I have in my multiframe, but to do that, i need to get it opened.
info = dicominfo('FLOW001_DS.dcm');
image_data =dicomread('FLOW001_DS.dcm'));
imtool(image_data,'DisplayRange',[]);
imshow(image_data(:,:,1), [])

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 13 Jun. 2018

0 Stimmen

image_data =dicomread('FLOW001_DS.dcm'));
sum2d = sum(image_data,4);
imagesc(sum2d);
colormap(gray(256))
You might prefer
mean2d = mean(image_data,4);
image(uint16(mean2d))
colormap(gray(256))
The sum() call could potentially produce values as large as 36*65535, which you would not be able to display directly as an image. imagesc() applied to the sum will examine the numeric values and scale them so that the highest numeric value comes out the brightest and the lowest numeric value comes out the darkest. It is pretty common for DICOM images stored as uint16 that the actual range used is up to about 6000 or to about 13000-ish; most uint16 DICOM images do not use the full range of 0 to 65535. The imagesc() deals with what is actually there.
The disadvantage of using imagesc() is that you would not be able to directly compare a different image set that was created with the same instrument settings but did not happen to go as bright. Like if a brain tumor shows up as a relative bright spot, then Yes, with imagesc() the relatively high value will show up brighter than the rest -- but if you were looking at a dataset with no tumor, then some spot in it would be the highest relative to that data, and that high spot would show up just as bright as a tumor would in the first situation. So if you want to compare two images with the same instrument settings, imagesc might not be the way to go unless used more carefully.

Weitere Antworten (0)

Kategorien

Mehr zu DICOM Format finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by