matlab均值滤波,中值滤波

滤波核3×3的均值滤波。

F=imread('D:\Desktop\66.png');
F=rgb2gray(F);
f=double(F);
[row,col]=size(f);
f1=zeros(row,col);

for i=2:row-1
    for j=2:col-1
        fx=[f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,j+1)];
        f1(i,j)=sum(fx,'all')/9/256; 
    end
end
figure(1);
subplot(1,2,1),imshow(F);title('原始图像');
subplot(1,2,2),imshow(f1);title('均值滤波');

滤波核3×3的中值滤波。

F=imread('D:\Desktop\66.png');
F=rgb2gray(F);
f=double(F);
[row,col]=size(f);
f2=zeros(row,col);

for i=2:row-1
    for j=2:col-1
        fy=[f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,j+1)];
        for x=1:9
           for y=x+1:9
              if fy(y)> fy(x)
                 zh= fy(x);
                 fy(x)= fy(y);
                 fy(y)=zh;
              end
           end
        end
        f2(i,j)= fy(5)/256;
    end
end
figure(1);
subplot(1,2,1),imshow(F);title('原始图像');
subplot(1,2,2),imshow(f2);title('中值滤波');

猜你喜欢

转载自blog.csdn.net/weixin_56832351/article/details/129199380