2012-03-21 13 views
8

Chcę zapytać o tej funkcji w Matlab dicomreadjak wyświetlić obraz dicom w Matlab?

przykład:

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

obraz pokazał się na ekranie, ale jest bardzo ciemny ..... zastanawiam sposób jest ciemno i nie normalne. Sprawdziłem z różnymi obrazami dicom, ale problem pozostał. Mam nadzieję, że możesz mi pomóc i z góry dzięki.

Odpowiedz

8

Jeśli masz do czynienia z obrazami monochromatycznymi, można ustawić liniowe skalowanie między minimalną i maksymalną wartością piksela w następujący sposób:

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

Alternatywnie, może wyświetlać obraz w pełnym zakresie dynamicznym:

imshow(img, []); 
+0

dziękuję za wyjaśnienie .. Rozumiem teraz. Jeszcze raz dziękuję –

0

dicomread zwraca obraz wielozakresowy.

Spróbuj

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

Próbowałem co u mnie powiedział .... . problem pozostaje. ... obraz jest ciemny. –

+0

dzięki za próbę pomocy. –

+0

@ user-x, czy możesz opublikować zdjęcie? –

4

myślę, że trzeba czytać mapę kolorów obrazu wraz z danymi, a następnie przekazać je do imshow:

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

dziękuję bardzo ..... że naprawdę to zrobił. –

0

Spróbuj

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);