如何在所有图像中应用中值滤波器并存储在目录中?

How to apply median filter in all images and store in a directory?

f = 'C:\Users\HP\Desktop\images';
d = ls(f);
d(1,:)=[]
d(1,:)=[]
mkdir('New_images')
for i=1:size(d)
   I=imread(fullfile(f,d(i,:)));
   Kmedian = I;
   for i = 1:3
       Kmedian(:,:,i) = medfilt2(Kmedian(:,:,i));
   end
   Kmedian=imresize(Kmedian,[227 227]);
   imshow(Kmedian)
   imwrite(Kmedian,fullfile('New_images',strcat(num2str(i),'.jpeg')));
end

如何一次使用中值滤波器。

错误: 在调整大小(第 5 行) 位置 3 的索引超出数组边界(不得超过 1)。

调整大小错误(第 10 行) Kmedian(:,:,i) = medfilt2(Kmedian(:,:,i));

medfilt2功能目前只对1个通道有效。如果您有彩色图像,则您的像素“矩阵”将分别具有红色、绿色和蓝色通道的第 3 维。

您仍然可以使用 medfilt2 功能,方法是将图像转换为灰度,或将其单独应用于每个通道。

Kmedian = I;
for i = 1:size(Kmedian,3)  % Iterate over all the channels in the image
    Kmedian(:,:,i) = medfilt2(Kmedian(:,:,i));
end

更新以考虑单通道和多通道图像