9
votes

I want to ask about this function in matlab dicomread

example :

a = dicomread ('m.dcm');
imshow(a)

the image showed in the screen but it is very dark.....I wonder way it is dark and not normal. I checked with different dicom images but the problem remain. I hope you can help me and thanks in advance.

4

4 Answers

10
votes

If you are dealing with monochrome images, you can set a linear scaling between a minimum and maximum pixel value as follows:

img = dicomread('filename');
imshow(img, [minAllowedPixValue maxAllowedPixValue]);

Alternately, you can display the image at full dynamic range:

imshow(img, []);
5
votes

I think you need to read the image colormap together with the data, then pass it to IMSHOW:

[a, amap] = dicomread ('m.dcm');
imshow(a,amap)
0
votes

dicomread returns a multi-band image.

Try

a = dicomread ('m.dcm');
figure();imshow(a(:,:,:,1));
0
votes

Try

im = dicomread('image.dcm');

im = im2double(im); % this line to convert from uint16 to double

im = mat2gray(im); % this line to put the data in range [0,1]

figure;imshow(im);