#image #matlab #image-processing #pixel
#изображение #matlab #обработка изображений #пиксель
Вопрос:
Я пытаюсь найти значение пиксельной медианы для серии изображений dicom в matlab.
Мой массив изображений имеет размер (256, 256, 20), причем 20 — это 20 изображений.
Я новичок в matlab и думаю, что делаю что-то ужасно неправильное, поскольку мой код работает уже более часа. Вот оно:
med_img = []
for k = 1:size(Im_Orig,1)
for i = 1:size(Im_Orig,2)
med_img(k,i) = median(Im_Orig(k,i,:))
end
end
Я знаю, что по возможности следует избегать вложенных циклов for, но я не могу найти лучшего решения или найти хорошую функцию где-нибудь в Интернете.
Любая помощь была бы потрясающей!
Комментарии:
1. Просто чтобы уточнить, вы пытаетесь найти медиану для 20 изображений в этом случае правильно?
2. Я пытаюсь найти медианное значение для каждого пикселя. Затем я найду изображение, наиболее близкое к этому пикселному медианному «изображению». Это в значительной степени нахождение медианного изображения.
3. Подавление вывода путем добавления точки с запятой в строку
med_img(k,i) = median(Im_Orig(k,i,:));
должно сработать. Кроме того, предварительное распределение размера массива также может повысить скорость.
Ответ №1:
Нахождение медианного изображения среди набора изображений
Это должно принимать медиану вдоль 3-го измерения, которая соответствует медиане между каждым из соответствующих пикселей.
Метод 1: получение медианы по третьему измерению:
%Random data simulating image%
Image = round(255.*rand(256,256,20));
Dimension = 3;
Median_Image = median(Image,Dimension);
Метод 2: использование циклов for и получение медианы каждого нисходящего вектора / столбца:
%Random data simulating image%
Image = round(255.*rand(256,256,20));
%Grabbing dimensions of multi-image array%
[Image_Height,Image_Width,Number_Of_Images] = size(Image);
Median_Image = zeros(Image_Height,Image_Width);
for Row = 1: Image_Height
for Column = 1: Image_Width
Median_Image(Row,Column) = median(Image(Row,Column,:),'all');
end
end
Запускался с использованием MATLAB R2019b
Комментарии:
1. Большое вам спасибо! Оба метода работали отлично и выполнялись очень быстро.