本文章的灵感来源在Alan.V.Oppenheim的巨著《信号与系统(第二版)》中关于微分滤波器的章节里提到了如何利用微分滤波器实现边缘锐化。因此此文权当笔者在学习《信号与系统》这门课的课后练习。
1.基本原理
在一个二维图像(不妨假设其为灰度图)
中,如果有区域边界的存在,就会使得边界两边的灰度值变化较为明显,即
的模较大。因此,如果要突出图像的边缘部分,我们可以采用一个二维微分滤波器,输出原始图像的梯度值再进行归一化,得到边缘锐化以后的图像其中:
2.一个简单的例子
这里我们以若干乒乓球为例,看二维微分滤波器对于若干乒乓球边缘锐化的效果,以下是原始图像:
这是对它边缘锐化以后的图像:
可以看出这个简单的滤波器对于突出轮廓的作用还是较为明显的
附:MATLAB源码
clc;
pic=imread('pingpong.jpg');
I=rgb2gray(pic);
I=im2double(I);
%subplot(2,1,1),imshow(I);
[px,py]=gradient(I);
newpic=sqrt(px.^2+py.^2);
%subplot(2,1,2),imshow(newpic);
imshow(newpic,[]);