2012-03-21 15 views
8

Tôi muốn hỏi về chức năng này trong matlab dicomreadlàm thế nào để hiển thị hình ảnh dicom trong MATLAB?

dụ:

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

hình ảnh cho thấy trong màn hình nhưng nó là rất tối ..... Tôi tự hỏi cách trời tối và không bình thường. Tôi đã kiểm tra với các hình ảnh dicom khác nhau nhưng vấn đề vẫn còn. Tôi hy vọng bạn có thể giúp tôi và cảm ơn trước.

Trả lời

8

Nếu bạn đang đối phó với hình ảnh đơn sắc, bạn có thể đặt tỷ lệ tuyến tính giữa giá trị pixel tối thiểu và tối đa như sau:

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

Cách khác, bạn có thể hiển thị hình ảnh ở dải động đầy đủ:

imshow(img, []); 
+0

cảm ơn bạn đã giải thích ..Tôi hiểu ngay bây giờ. cám ơn bạn một lần nữa –

0

dicomread trả về hình ảnh nhiều dải.

Hãy thử

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

tôi đã cố gắng những gì u nói với tôi .... vấn đề vẫn còn. ... hình ảnh tối. –

+0

cảm ơn vì đã cố gắng giúp tôi. –

+0

@ user-x, bạn có thể đăng hình ảnh không? –

4

Tôi nghĩ rằng bạn cần phải đọc bản đồ màu hình ảnh cùng với các dữ liệu, sau đó vượt qua nó để IMSHOW:

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

cảm ơn bạn rất nhiều ..... điều đó thực sự đã làm điều đó. –

0

Hãy thử

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