⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 medi.m

📁 MATLAB中实现中值滤波的算法的M文件。经过验证可以实现滤波效果。
💻 M
字号:
function [J]=medi(I,W)
[m,n]=size(I);%原来图像的高度和宽度
[mm,nn]=size(W);%模板的高度和宽度
J=zeros(m,n);%处理后的图像
%以下对图像中每个点进行处理
for i=1:m
    for j=1:n
        %如果是边缘点,则不处理,赋予原来图像的值
        if i<=(mm-1)/2||i>=m-(mm-1)/2+1||j<=(nn-1)/2||j>=n-(nn-1)/2+1
            J(i,j)=I(i,j);
        else
            %对于不是边缘点,则按模板的大小进行计算,把模板对应原图像上的点放到一个数组里
            k=0;
            temp=zeros(1,mm*nn);
            for a=-(mm-1)/2:(mm-1)/2
                for b=-(nn-1)/2:(nn-1)/2
                    temp(k+1)=I(i+a,j+b);
                    k=k+1;
                end
            end
            %对于模板上对应原图像上的点进行排序,采用冒泡排序
            for s=1:k-2
               for l=s+1:k
                   if temp(s)>temp(l)
                       tem=temp(s);
                       temp(s)=temp(l);
                       temp(l)=tem;
                   end
               end
            end
            J(i,j)=temp((k+1)/2);%把排序后的值赋给处理后的矩阵
        end
    end
end
                    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -