图像处理3-经典空间域增强——空域滤波

图像处理系列:

图像处理1-经典空间域增强——灰度映射

图像处理2-经典空间域增强——直方图均衡化

空域滤波

这里根据模板是线性的还是非线性的进行分类,分别根据《图像处理与分析教程》上的方法实现了线性的领域平均、自定义加权平均、高斯平均、线性锐化非线性的1-D中值滤波、2-D均值滤波、百分比滤波(最大、最小、中点)、非线性锐化、最大最小锐化,然后在主函数中进行测试。

一、线性滤波

1.空域线性滤波的代码

function [pic]=xxkylb(p,type,n,CX)
    if nargin<3%缺省滤波核为3
        n=3;
    end
    d=uint32(n/2)-1;%matlab uint会四舍五入!
    if strcmp(type,'JZLB')%均值滤波器
        K=ones(n,n);
        K=uint32(K);
        S=n*n;
    elseif strcmp(type,'JQPJZDY')%自定义均值滤波器,滤波核由CX导入
        K=CX;
        K=uint32(K);
        S=sum(K(:));
    elseif strcmp(type,'GSJQPJ')%高斯均值滤波器
        if  nargin<4%缺省σ为1
            sig=1;
        else
            sig=CX;
        end
        K=zeros(n,n);
        gy=exp(double(-(((d)^2+(d)^2)/2*sig^2)))/(2*pi*sig^2);%右下角最小的参数,进行一个归一化
        for x=1:n
            for y=1:n
                K(x,y)=exp(double((-(((x-d-1)^2+(y-d-1)^2)/2*sig^2))))/(2*pi*sig^2)/gy;%以距离值构造滤波核权术
            end
        end
        K=uint32(K);%转换为整形
        S=sum(K(:));
    elseif strcmp(type,'RH')%线性锐化
        K=CX;%模板为输入
        S=1;%设为1
    end
    [r,c]=size(p);
    mv=mean(p(:));
    iob=ones(r+2*d,c+2*d)*mv;%以均值填充边缘,方便计算
    iob((d+1):(d+r),(d+1):(d+c))=p;
    pic=uint8(zeros(r,c));
    for i=1:r
        for j=1:c
            t=0;
            for k=1:n
                for d=1:n
                    t=t+K(k,d)*iob(i+k-1,j+d-1);%计算
                end
            end
            pic(i,j)=uint8(t/S);%换点
        end
    end
end

2.结果分析

a.线性空域滤波效果

测试代码

clear;clc
pic=imread('lena.BMP');
pic=rgb2gray(pic);
picJZ=xxkylb(pic,'JZLB');
a=[1 2 1;2 4 2;1 2 1];%一个自定义的均值模板
piczdy=xxkylb(pic,'JQPJZDY',3,a);
picGS=xxkylb(pic,'GSJQPJ');
b=[0 -1 0;-1 4 -1;0 -1 0];%一个自定义的锐化模板
picRH=xxkylb(pic,'RH',3,b);
figure(6)
set(gcf,'position',[100 100 1500 800]);
subplot(2,3,1)
imshow(pic)
xlabel('原图')
subplot(2,3,2)
imshow(picJZ)
xlabel('均值滤波')
subplot(2,3,3)
imshow(piczdy)
xlabel('自定义均值滤波')
subplot(2,3,4)
imshow(picGS)
xlabel('高斯滤波')
subplot(2,3,5)
imshow(picRH)
xlabel('线性锐化(3x3无边缘中心4对角-1)')%模板[0 -1 0;-1 4 -1;0 -1 0]
saveas(gcf,'线性空域滤波效果图.jpg')

效果图

图1 线性空域滤波效果图

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值