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


f = 'C:UsersHPDesktopimages';
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行(K中位数(:,:,i(=medfilt2(K中位数(,:,i((;

medfilt2函数一次只能在一个通道上工作。如果你有一个彩色图像,你将有一个三维到你的像素";矩阵";分别用于红色、绿色和蓝色通道。

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

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

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

相关内容

  • 没有找到相关文章

最新更新