【数字图像处理】四种常用的滤波器

数字图像处理

四种常用滤波器

  • 数字图像处理
  • 一、平滑滤波器
    • 1.1 基本原理
    • 1.2 作用
    • 1.3 邻域加权平均实现方式
  • 二、高斯滤波器
    • 2.1 基本原理
    • 2.2 特点
  • 三、中值滤波器
    • 3.1 基本原理
    • 3.2 适用场合
    • 3.3 实现方式
    • 3.4 特点
  • 四、拉普拉斯锐化滤波器
    • 4.1 基本原理
    • 4.2 目的
    • 4.3 适用场合
    • 4.4 实现方式
  • 五、Matlab代码实现
    • 5.1 平滑滤波
    • 5.2 高斯滤波
    • 5.3 中值滤波
    • 5.4 拉普拉斯锐化滤波


一、平滑滤波器

1.1 基本原理

空域滤波是在待处理图像f(x,y)上逐点移动模板,在每一点(x,y)的滤波响应通过事先定义的关系来计算。该响应就是空间滤波的输出。

1.2 作用

  • 模糊处理,来去除图像中的一些不重要的细节;
  • 消除图像中的高频分量,同时不影响低频分量;高频分量对应途中的边缘等灰度值具有较大变化的区域,平滑可以减少这部分起伏;
  • 减小或消除噪声;
  • 提取较大目标前去除太小的细节或将目标的小间断连接起来。

1.3 邻域加权平均实现方式

邻域加权平均:包含在滤波器邻域内像素的均值或加权平均值,也称为均值滤波器。
当滤波中心在图像边沿上时有两种处理方式:

  • 不做处理,在边沿处输出等于输入;
  • 或者给输入图像“补上”若干行和列,补零,补相同值,对称补值。

二、高斯滤波器

2.1 基本原理

【数字图像处理】四种常用的滤波器_第1张图片

2.2 特点

【数字图像处理】四种常用的滤波器_第2张图片

三、中值滤波器

3.1 基本原理

中值滤波的基本原理简单来说就是:用模板区域内像素的中间值,作为结果值。

3.2 适用场合

主要用途:

  • 去除噪声
  • 强迫突出的亮点(暗点)更象它周围的值,以消除孤立的亮点(暗点)

计算公式:R=mid{zi|i=1,2,…,n}

3.3 实现方式

  • 将模板区域内的像素排序,对于同值像素,连续排列,求出中间值(例如:3x3的模板,第5大的是中间值)
  • 取3X3窗口,从小到大排列,取中间值作为该区域的取值。

3.4 特点

  • 优点:
  • 在去除噪音的同时,可以比较好地保留边的锐度和图像的细节(优于均值滤波器);
  • 能够有效去除脉冲噪声:以黑白点叠加在图像上的椒盐噪声
  • 缺点:
  • 中值滤波去除孤立线或点干扰,而保留空间清晰度较平滑滤波为好;但对高斯噪声则不如平滑滤波。
  • 图像边缘发生移动

四、拉普拉斯锐化滤波器

4.1 基本原理

灰阶的突然变化:一次微分后形成的波峰,正代表着两个区域的边缘处。若波峰够高,也就是已超过门坎值,已足以说明在该处有边点形成的边线。

4.2 目的

  • 增强图像中高频分量;
  • 常用于增强被模糊的细节或目标的边缘,强化图像的细节。

4.3 适用场合

主要用途:

  • 突出图像中的细节,增强被模糊了的细节;
  • 印刷中的细微层次强调。弥补扫描对图像的钝化;
  • 超声探测成像,分辨率低,边缘模糊,通过锐化来改善;
  • 图像识别中,分割前的边缘提取;
  • 锐化处理恢复过度钝化、曝光不足的图像;
  • 零点检测。

4.4 实现方式

【数字图像处理】四种常用的滤波器_第3张图片
【数字图像处理】四种常用的滤波器_第4张图片

五、Matlab代码实现

%引入图片
I=imread('你的路径');

5.1 平滑滤波

%% 平滑滤波
%制定卷积核为3×3的全1矩阵
h=ones(3,3)/9;
%平滑运算
I_average=imfilter(I,h);
figure(f1);
subplot(2,2,1);imshow(I_average);title('平滑滤波图像');

5.2 高斯滤波

%% 高斯滤波
% 标准差为1的高斯滤波器
I_Gauss = imgaussfilt(I,1);
figure(f1);subplot(2,2,2);imshow(I_Gauss);title('高斯滤波图像');

5.3 中值滤波

%% 中值滤波
% 3×3的邻域中值滤波
I_mid = medfilt2(I);
figure(f1);subplot(2,2,3);imshow(I_mid);title('中值滤波图像');

5.4 拉普拉斯锐化滤波

%% 拉普拉斯锐化
% 4邻点拉普拉斯锐化滤波器
H = fspecial('laplacian',0);
I_lap = double(I);
I_laplacian = imfilter(I_lap,H);
figure(f1);subplot(2,2,4);imshow(I_laplacian);title('拉普拉斯锐化滤波图像');

你可能感兴趣的:(Matlab,数字图像处理,计算机视觉,图像处理,学习,matlab)