Как отобразить изображение DICOM в Matlab? - PullRequest
10 голосов
/ 21 марта 2012

Я хочу спросить об этой функции в matlab dicomread

пример:

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

изображение показывается на экране, но оно очень темное ..... Интересно, как темно и ненормально.Я проверил с различными изображениями DICOM, но проблема остается.Я надеюсь, что вы можете помочь мне, и спасибо заранее.

Ответы [ 4 ]

10 голосов
/ 22 марта 2012

Если вы имеете дело с монохромными изображениями, вы можете установить линейное масштабирование между минимальным и максимальным значением пикселя следующим образом:

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

В качестве альтернативы, вы можете отобразить изображение в полном динамическом диапазоне:*

imshow(img, []);
5 голосов
/ 21 марта 2012

Я думаю, вам нужно прочитать цветовую карту изображения вместе с данными, а затем передать их в IMSHOW:

[a, amap] = dicomread ('m.dcm');
imshow(a,amap)
0 голосов
/ 25 апреля 2012

Попробуйте

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

0 голосов
/ 21 марта 2012

dicomread возвращает многоканальное изображение.

Попробуйте

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