首先分为平滑空间滤波器和锐化空间滤波器来进行介绍。平滑空间滤波器主要用于模糊处理和降低噪声,主要两类:均值滤波器和中值滤波器。锐化空间滤波器主要是:拉普拉斯算子和梯度算子。

一、均值滤波方法:对高斯噪声的抑制效果较好。

假设我们有一个3*3的模板,系数全为1,那么欲求的中心点像素值就是以该模板为中心的9个像素的平均值来代替。根据定义可知,该滤波器具有模糊边缘的负面效应。通过空间均值处理来模糊图像,可以突出感兴趣的物体,即将部分图像融入背景中 ,部分图像‘突出显示’出来,达到平滑图像的作用,重点理解平滑对于图像的意义。

MATLAB代码:

set(gca,'Fontname','Monospaced');
I=imread('a.tif');
subplot(231),imshow(I), title('origin image');
%I=rgb2gray(I);
%I1=imnoise(I,'salt & pepper',0.02);
%subplot(2 3 2)
%imshow(I1)
%title('添加椒盐噪声的图像');
I1 = I;
k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波
k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波
k5=filter2(fspecial('average',15),I1)/255; %进行15*15模板平滑滤波
subplot(232),imshow(k1);title('3*3 smoothing filtering');
subplot(233),imshow(k2);title('5*5 smoothing filtering');
subplot(234),imshow(k3);title('7*7 smoothing filtering');
subplot(235),imshow(k4);title('9*9 smoothing filtering');
subplot(236),imshow(k5);title('15*15 smoothing filtering');  

结果:可以看出,在模板逐渐扩大的过程中,图像的锯齿边缘被模糊掉,颗粒状的噪声也没有了,达到了我们想要的效果,但是在9*9甚至更大的模板,图像开始失真,图像过度模糊了。所以我们在图像平滑的时候,要选最佳的模板尺寸。

二、中值滤波方法:对椒盐噪声的抑制效果较好。

中值滤波器是一种统计排序滤波器,即图像像素等于周围像素排序后的中值,加入模板为3*3,则目标点的像素等于排序后的第五个像素的值。中值滤波器特别适用于椒盐噪声。由定义知,中值滤波器对于孤立点特别敏感,还可以保持图像的边缘特性。由中值滤波扩展出来的还有最大值滤波器和最小值滤波器。

MATLAB代码:

%=======second part======
I = imread('book_XRaySalt.tif');
subplot(131),imshow(I);title('原椒盐噪声图像');k1=filter2(fspecial('average',3),I)/255;   %进行3*3模板平滑滤波k2=medfilt2(I,[3,3]);                      %进行3*3模板中值滤波subplot(132),imshow(k1);title('3*3模板均值滤波');
subplot(133),imshow(k2);title('3*3模板中值滤波');
I(100:110,100:110),
k2(100:110,100:110),

结果:

三、高斯滤波方法

高斯滤波器是利用高斯核与输入图像的每个点进行卷积。提到高斯,就想到‘草帽’,更能记住它。高斯滤波器是一种平滑线性滤波器,使用高斯滤波器对图像进行滤波,其效果是降低图像灰度的“尖锐”变化,也就是使图像“模糊”了。高斯滤波对于抑制服从正态分布的噪声效果非常好,其代价是使图像变得“模糊”。当然,有时对图像进行平滑滤波的目的就是让图像变得模糊。

一维高斯分布函数:                                                                                二维高斯分布函数:

                                          

它们的图像分别为:

            

其3*3与5*5的卷积核对应如下:

MATLAB实现:

img = imread('lena.tif');
w = fspecial('gaussian',[5,5],0.5);
%replicate:图像大小通过赋值外边界的值来扩展
%symmetric 图像大小通过沿自身的边界进行镜像映射扩展
I = imfilter(img,w,'replicate');
subplot(1,2,1);title('原图像');imshow(img);
subplot(1,2,2);title('高斯滤波后的图像');imshow(I);

从结果可以看出,图像整体模糊平滑了,特别是头发和帽子部分,是图像的尖锐变化被降低了吧。

参考图像锐化(增强)和边缘检测:https://blog.csdn.net/mghhz816210/article/details/37820483

四、拉普拉斯算法进行图像锐化

拉普拉斯算子是一种二阶微分算子,其强调的是图像中灰度的突变,通过将原图像和拉普拉斯图像加在一起,可以达到锐化图像的作用,最终在保留图像的背景信息的前提下从而突出细节。拉普拉斯锐化模板在边缘检测中非常有用。因为图像的边缘就是那些灰度跳变厉害的的区域。

拉普拉斯算子模板:

实现代码:

%=============================================================
f=imread('moon.jpg');
subplot(2,3,1),imshow(f);
title('原图像'); w4=fspecial('laplacian',0),
g1=imfilter(f,w4,'replicate');
subplot(2,3,2),imshow(g1); title('拉普拉斯模板滤波后的图像'); f2=im2double(f);%将f转换归一化的double类图像,然后进行滤波
g2=imfilter(f2,w4,'replicate');
% imshow(img,[low high])  [low high]用于指定图像显示的灰度范围 对于double数据认为是0-1范围内
subplot(2,3,3),imshow(g2,[]);   title('含有负值的滤波结果'); g=f2-g2;
subplot(2,3,4),imshow(g);title('原图-含有负值的滤波结果');%w8=[0 1 0;1 -4 1;0 1 0],
w8=[1 1 1;1 -8 1;1 1 1],
g8=f - imfilter(f,w8,'replicate');
subplot(2,3,5),imshow(g8);title('对角线中心为8的拉普拉斯模板');%=============================================================

五、梯度算子进行图像锐化

相比于拉普拉斯二阶微分算子,梯度算子一一阶微分算子,更为简单。其实个人觉得,把梯度算子放在‘ 边缘检测’更为合适。

f(x,y)在X方向和Y方向的梯度:

经典模板:

车道线检测之-sobel算子边缘检测原理:https://blog.csdn.net/aiailab/article/details/82849158

代码实现:

代码中增加注释,很详细的介绍了求梯度算子锐化的过程。

%   soble algorithm
%   ZhangFL at SWPU  2017.04.26
%   Sobel算子中的垂直模板得到的梯度图,由于梯度方向与边缘走向垂直,所以该梯度图对水平边缘有较强的响应,从而水平细节信息非常清晰。
%   sobel算子中的水平模板得到的梯度图,它对垂直边缘有较强的响应,垂直细节非常清晰。
%   Sobel算子水平和垂直方向叠加的梯度图,水平和垂直细节都非常清晰。A=imread('house.tif');  %I=rgb2gray(A);I=A;subplot(2,2,1); imshow(I);  title('原图'); k2=filter2(fspecial('average',5),I)/255; %进行5*5模板平滑滤波I=k2;hx=[-1 -2 -1;0 0 0 ;1 2 1],  %产生sobel垂直梯度模板hy=hx',                    %产生sobel水平梯度模板gradx=filter2(hx,I,'same');gradx=abs(gradx); %计算图像的sobel垂直梯度subplot(2,2,2);imshow(gradx,[]);title('图像的sobel垂直梯度');grady=filter2(hy,I,'same');grady=abs(grady); %计算图像的sobel水平梯度subplot(2,2,3);imshow(grady,[]);title('图像的sobel水平梯度');grad=gradx+grady;  %得到图像的sobel梯度subplot(2,2,4);imshow(grad,[]);title('图像的sobel梯度(使用5*5模板平滑滤波)');

图像滤波算法整理--均值、中值、高斯、拉普拉斯算子、梯度算子:相关推荐

  1. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)

    CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...

  2. open cv均值 中值 高斯 双边高斯 滤波及模糊

    /* 模糊与消噪 模糊原理(线性滤波) ●Smooth/Blur 是图像处理中最简单和常用的操作之一 ●使用该操作的原因之一-就为了给图像预处理时候减低噪声 ●使用Smooth/Blur操作其背后是数 ...

  3. 【老生谈算法】matlab实现车牌识别中值滤波算法——车牌识别中值滤波算法

    基于Matlab的车牌识别中值滤波算法的研究与实现 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于Matlab的车牌识别中值滤波算 ...

  4. 【图像去噪】基于matlab高斯+均值+中值+双边滤波图像去噪【含Matlab源码 1872期】

    ⛄一.高斯+均值+中值+双边滤波图像去噪简介 1 数字图像去噪技术简述 1.1 研究背景及目的 图像是人类认识世界的第一视角,我们可以通过图像获得比较真实的信息和直观的结果.但实际上,在产生和传输过程 ...

  5. 滑动窗口滤波 c语言,关于中值滤波算法,以及C语言实现(转)

    1.什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护 ...

  6. 滑动窗口滤波 c语言,关于中值滤波算法 以及C语言实现

    1.什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护 ...

  7. 滑动窗口滤波 c语言,关于中值滤波算法,以及C语言实现

    1.什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护 ...

  8. 图像滤波【一】:从高斯滤波到引导滤波

    前言:最近在做一个图像的作业, 要求python实现双边滤波和引导双边滤波. 可以使用opencv,numpy.不能用opecv增强库(ximageproc之类的就用不了啦), 这里记录一下学习心得. ...

  9. 图像处理:推导五种滤波算法(均值、中值、高斯、双边、引导)

    目录 概论 算法原理 1.均值滤波 2.中值滤波 3.高斯滤波 4.双边滤波 5.引导滤波 手写代码 Opencv代码实现 最后的总结 参考文章 概论 本来打算是分开推导的,但我觉得还是整个合集吧,避 ...

最新文章

  1. 【双11背后的技术】集团AliDocker化双11总结
  2. [bzoj2229][Zjoi2011]最小割
  3. 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序
  4. Java Try-with-resources
  5. xtrabackup 原理详解
  6. Android dex修复工具,Android的dex热修复的实现基本原理
  7. FLAGS 作用及用法
  8. 【Hardware】Mac外接DELL显示屏时报错“No DP Signal”无法连接
  9. NGUI------UIToggle
  10. git生成SSH秘钥
  11. java中synchronized的三种写法详解
  12. 老树发新芽—使用 mobx 加速你的 AngularJS 应用 1
  13. 外贸业务员该如何拓客?
  14. MySQL数据库实操教程(15)——表的关联关系
  15. mysql时间格式化到小时_mysql 时间格式化
  16. 攒机需要注意的8条技巧 转太平洋网
  17. [Android App] 内涵段子最新5.5.5 去广告去更新修改版
  18. 操作系统真象还原第1章:部署工作环境
  19. 用谷歌地图api获取图形范围内有几个标记点
  20. Linux中查看二进制文件

热门文章

  1. Part I 空气曲棍球 Chapter6(6.5 Defining a Perspective Projection)
  2. 在form中将数据打印到EXCEL文件(单元格合并、改变字体大小等操作)
  3. 【Pandas】解决循环输出为多个sheet时,数据覆盖的问题
  4. poj1836Alignment
  5. Go语言接入支付宝开放平台
  6. 三角形内的点个数(果园里的数)
  7. 替换空格----newcoder
  8. 编程语言的各种类型详解 - 程序员小知识1
  9. 【Java动态代理】—— 每天一点小知识
  10. 史上最简单的excel处理工具(01)