How to display DICOM image

17 views (last 30 days)
Majid Al-Sirafi
Majid Al-Sirafi on 23 Jan 2019
Commented: Walter Roberson on 25 Jan 2019
Hi everyone
Currently, I’m working in processing of DICOM image. The following program is used for noising the medical image
close all;
clear all;
X = dicomread('CT-MONO2-16-ankle.dcm');
metadata = dicominfo('CT-MONO2-16-ankle.dcm');
figure; imshow(X, []);title('before');
X = imnoise(X,'salt & pepper',0.0006);
dicomwrite(X, 'noisyImage.dcm', metadata);
Y = dicomread('noisyImage.dcm');
figure; imshow(Y, []); title('after');
Unfortunately, the output is blur noisy image. I want just noisy image (as shown in attached image), not blur noisy image. How can I do that?
Walter Roberson
Walter Roberson on 25 Jan 2019
When you use a display range in imshow(), it tells the graphics system to map all value below "low" to the first color in the color map, and to map all values above "high" to the last color in the color map, and to map all values inbetween proportionately -- so a value 1/3 of the way between low and high would get mapped to 1/3 of the way into the color map.
If you specify a display range of [] (the empty array) then the code uses min(X(:)) and max(X(:))
Now, it might be the case that for one particular sequence of images that the "interesting" information is within a known range of values, but a different run of the same patient on the same machine might have a different "interesting" range of values because of different machine settings. In any case, a different dataset from a different manufacturer's machine will likely have the "interesting" range of values be different.
Automatically finding the "interesting" range of values can be tricky.

Sign in to comment.

Answers (0)


Community Treasure Hunt

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

Start Hunting!