一)空间域滤波与频率域滤波
1)空间域滤波
空间域滤波是指在图像空间中借助模板对图像领域进行操作,处理图像每一个像素值。主要分为线性滤波和非线性滤波两类,根据功能可分为平滑滤波器和锐化滤波器。平滑可通过低通来实现,平滑的目的有两类,一是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小尖端连接起来;二是去噪。锐化则可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。
在matlab中实现空间域滤波,有很多类型,如均值、中值、索贝尔、高斯、拉普拉斯、高斯-拉普拉斯等,但各有差异。下面是用matlab实现的代码:
%空间域滤波
clc;close all;
I=imread('1.tif');
w1=fspecial('average',[3 3]);
w2=fspecial('sobel');
w3=fspecial('gaussian',[3 3],0.5);
w4=fspecial('laplacian',0.2);
w5=fspecial('log',[5 5],0.5);
g1=imfilter(I,w1,'replicate');
g2=imfilter(I,w2,'replicate');
g3=imfilter(I,w3,'replicate');
g4=imfilter(I,w4,'replicate');
g5=imfilter(I,w5,'replicate');
g6=medfilt2(I);
subplot(3,3,1);imshow(I);title('原图');
subplot(3,3,2);imshow(g1);title('均值滤波');
subplot(3,3,3);imshow(g2);title('索贝尔滤波');
subplot(3,3,4);imshow(g3);title('高斯滤波');
subplot(3,3,5);imshow(g4);title('拉普拉斯滤波');
subplot(3,3,6);imshow(g5);title('高斯-拉普拉斯滤波');
subplot(3,3,7);imshow(g6);title('中值滤波');
其运行结果如下: