Я работаю с комодом Dicom PA. У меня нет проблем с загрузкой изображений и выполнением базовой пороговой обработки, однако мне нужно применить некоторые фильтры. В будущем я буду разрабатывать свои собственные фильтры, но сейчас я хочу использовать фильтры MATLAB. Изображения 16-битные, и в документах MATLAB говорится, что fspecial
отлично работает с 16-битными изображениями.
Когда я пытаюсь использовать функции fspecial
или edge
, я получаю результаты, аналогичные изображениям, как показано ниже.
Мой вопрос: почему это происходит и как это исправить?
Ваша помощь приветствуется. С уважением,
full_path = 'I:\Find and Treat\Anonymized_Data\000026_20050607112512_1.dcm';
dicominfo_image = dicominfo(full_path);
dicomread_image = dicomread(dicominfo_image);
dicomread_image = mat2gray(dicomread_image);
c = imcomplement(dicomread_image);
figure,
subplot(1,3,1)
imshow(c)
f = fspecial('laplacian');
cf = filter2(f,c);
subplot(1,3,2)
imshow(cf)
f1 = fspecial('log');
cf1 = filter2(f1,c);
subplot(1,3,3)
imshow(cf1)
ИЗМЕНИТЬ
Я добавил и изменил следующий код, чтобы учесть динамический диапазон, и построил график сетки. Я получил следующий результат и сообщение об ошибке.
Предупреждение: ошибка при обновлении LineStrip.
Обновление не удалось по неизвестной причине
Предупреждение: ошибка при обновлении LineStrip.
Обновление не удалось по неизвестной причине
figure,
subplot(2,3,1)
imshow(c, [])
f=fspecial('laplacian');
cf=filter2(f,c);
subplot(2,3,2)
imshow(cf, [])
f1=fspecial('log');
cf1=filter2(f1,c);
subplot(2,3,3)
imshow(cf1, [])
subplot(2,3,4)
mesh(c)
subplot(2,3,5)
mesh(cf)
subplot(2,3,6)
mesh(cf1)
ИЗМЕНИТЬ
imshow(cf1, [])
? - person JohnnyQ   schedule 18.05.2015filter
. Если вывод сетки выглядит нормально, вам следует посмотреть на визуализацию. - person Steffen   schedule 18.05.2015