灰度图像的平滑滤波-均值核函数、加权平均核函数、平方根核函数(Matlab)

clc;
clear all;
img=im2double(imread('D:\Gray Files\3-33.tif'));

KernelSize=43;
Kernel_Type='square root kernel';

%扩展区域的行列数
len=floor(KernelSize/2);
%对原始图像进行扩展,此处采用了镜像扩展,目的是解决边缘计算的问题
img_pad=padarray(img,[len,len],'symmetric');
[M,N]=size(img_pad);

switch Kernel_Type
    %box kenal,均值内核(滤波器)
    case 'box kernel'
        %内核掩模(滤波器)、权重矩阵
        W=ones(KernelSize,KernelSize)/KernelSize^2;  
        %加权平均核函数
    case 'weighted kernel'
        %求解初期构造矩阵的大小
        m=(KernelSize+1)/2;
        for i=1:m
            for j=1:m
                w1(i,j)=2^(i+j-2);
            end
        end
        %对w1水平翻转,然后合并w1,w2,同时要删除中间重合的两列
        w2=fliplr(w1);
        w3=cat(2,w1(:,1:m-1),w2);
        %对w3垂直翻转,然后合并w3,w4,同时删除中间重复的两行
        w4=flipud(w3);
        W=cat(1,w3(1:m-1,:),w4);
        W=W/(sum(sum(W)));
        %平方根核函数
    case 'square root kernel'
        K=1;
        delta=7;
        m=(KernelSize+1)/2;
        %生成第一列数据
        w1=zeros(m,m);
        for i=2:m
            w1(i,1)=sqrt(w1(i-1,1)+2*(i-1)-1);
        end
        %生成剩余列的数据
        for i=1:m
            for j=2:m
                w1(i,j)=sqrt((w1(i,j-1))^2+2*(j-1)-1);
            end
        end
        %对w1水平翻转,然后合并w1,w2,同时要删除中间重合的两列
        w2=fliplr(w1);
        w3=cat(2,w2(:,1:m-1),w1);
        %对w3垂直翻转,然后合并w3,w4,同时删除中间重复的两行
        w4=flipud(w3);
        W=cat(1,w4(1:m-1,:),w3);
        W=K*exp(-W.^2/(2*delta^2));        
        W=W/(sum(sum(W)));        
end
g=img;
for i=1+len:M-len
    for j=1+len:N-len
        %从扩展图像中,取出局部图像
        Block=img_pad(i-len:i+len,j-len:j+len);
        %计算局部图像与内核掩模(滤波器)的乘积
        g(i-len,j-len)=sum(sum(Block.*W));
    end
end

imshow(g);
title('平滑滤波');

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值