• 大小: 2.40KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: Matlab
  • 标签: matlab  

资源简介


里面有各种中值滤波去噪MATLAB程序,包含标准、开关、极值、自适应等中值滤波。

资源截图

代码片段和文件信息

clc
clear;

I=imread(‘lena.bmp‘);
I=rgb2gray(I);
[mn]=size(I);
figure(1)imshow(I)title(‘源图像‘);
I1=imnoise(I‘salt & pepper‘0.3); %添加椒盐脉冲噪声
figure(2)imshow(I1);title(‘加入强度为0.3的脉冲噪声‘);

% %常规中值滤波
Ic=medfilt2(I1);
figure(3)imshow(Ic);title(‘常规中值滤波效果图‘);

Temp=zeros(33);

% 开关中值滤波就是区分噪声点和非噪声点,作为一个开关
Ik=I1;
for i=2:m-1
    for j=2:n-1
        if Ik(ij)==255 || Ik(ij)==0
            Temp = Ik(i-1:i+1j-1:j+1);
            Ts = sort(Temp(:));
            Ik(ij) = Ts(5);
        end
    end
end
figure(4)imshow(Ik);title(‘开关中值滤波效果图‘);

% %极值中值滤波就是判断某点是否是该区域的极大极小值点,区分噪声和非噪声
Ij=I1;
for i=2:m-1
    for j=2:n-1
        Temp = Ij(i-1:i+1j-1:j+1);
        Ts = sort(Temp(:));
        if Ij(ij)==Ts(1) || Ij(ij)==Ts(9)
            Ij(ij)=Ts(5);
        end
    end
end
figure(5)imshow(Ij);title(‘极值中值滤波效果图‘);

%加权中值滤波权值的大小待定
Iq=I1;
w=[1 2 3 4 5 4 3 2 1 ];
for i=2:m-1
    for j=2:n-1
        Temp = Iq(i-1:i+1j-1:j+1);
        T=Temp(:);
 

评论

共有 条评论