如何在所有图像中应用中值滤波器并存储在目录中?
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
更新以考虑单通道和多通道图像
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
更新以考虑单通道和多通道图像