目录
空间滤波
空间滤波是一种采用滤波处理的图像处理方法,目的是达到某种目的(让它更模糊或者让它更清晰)。
滤波是将信号中特定波段频率滤除的操作。
根据滤波频率的不同,空间滤波可以分为平滑滤波(加强低频信息)和锐化滤波(加强高频信息)。
在灰度图像中,低频成分指的是灰度变化小的区域,高频成分指的是灰度变化大的区域。
所以平滑滤波又叫低通滤波,锐化滤波又叫高通滤波。
原理
空间滤波通过把每个像素的值替换成该像素及其邻域的函数值来修改图像。
动图
平滑滤波
滤波器分为线性滤波器和非线性滤波器。
线性平滑滤波器就是求一个邻域内像素的加权均值。
非线性平滑滤波器(统计排序滤波器)就是将滤波器区域像素的值进行各种排序,然后选择最大值、最小值、中值等填入中间的像素,所以这些平滑滤波器又叫最大值滤波器,最小值滤波器,中值滤波器,其中中值滤波器是使用最广泛的统计排序滤波器。
图例
下图是均值平滑滤波器的平滑效果,根据领域大小给出。
下面给出中值领域3X3的对比
从中我们可以看出,邻域的大小与平滑的效果直接相关,领域越大平滑的效果越好(朦胧感),但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊。
均值平滑滤波器 matlab 代码
Data=dir('C:\ORL56_46\*.bmp');
A=imread(Data(1).name);
H=fspecial('average',3);
B=imfilter(A,H,'replicate');
imshow(B);
中值平滑滤波器 matlab 代码
Data=dir('C:\ORL56_46\*.bmp');
A=imread(Data(1).name);
B=medfilt2(A);
imshow(B);
人脸识别识别率比较 PCA+k近邻分类器
ORL 56_46 K=1 Trainnumber=6 | |||||
邻域 | 原图 | 3X3 | 5X5 | 7X7 | 11X11 |
均值rate | 94.38% | 94.38% | 95.00% | 96.25% | 96.88% |
中值rate | 94.38% | 93.75% | 95.63% | 93.75% | 92.50% |
锐化滤波
平滑滤波可以将图像模糊处理,即加强低频成分,减弱高频成分,而锐化滤波可以突出图像的细节,减弱低频成分,加强高频成分。
我们在做图像平滑的时候,通过减少相邻像素之间的灰度值的差异(比如平均处理),来达到平滑的效果。
那么为了达到锐化图像的目的,我们很自然地可以想到可以通过增大相邻像素之间灰度值的差异来实现。
锐化的方法有很多,像梯度锐化,拉普拉斯和sobel等。
Unsharp Mask
Step 1 使用平滑滤波对原始图像进行模糊操作,产生模糊图像。
Step 2 让原始图像减去模糊图像,去掉它们的共同特性,保留个性,即图片细节。
Step 3 将细节信息与原始图像进行叠加,让低频更加低频,让高频更加高频。
效果图
拉普拉斯
效果图
锐化滤波器 matlab 代码
Data=dir('C:\ORL56_46\*.bmp');
A=imread(Data(1).name);
H=fspecial('log');
B=imfilter(A,H,'replicate');
imshow(B);
人脸识别识别率比较 PCA+k近邻分类器
ORL 56_46 K=1 Trainnumber=6 | |||||
类型 | 原图 | 锐化 | 叠加 | USM | unsharp |
识别率 | 94.38% | 48.75% | 95.00% | 90.63% | 86.88% |