一幅原始图像在获取和传输过程中会受到各种噪声的干扰,使图像质量下降,对分析图像不利。反映到画面上,主要有两种典型的噪声。一种是幅值基本相同,但出现的位置很随机的椒盐噪声。另一种则每一点都存在,但幅值随机分布的随机噪声。为了抑制噪声、改善图像质量,要对图像进行平滑处理。

几种常见的噪声

图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt& Pepper)噪声、脉冲噪声、高斯噪声等.

椒盐噪声含有随机出现的黑白强度值.

脉冲噪声则只含有随机的白强度值(正脉冲噪声)或 黑强度值(负脉冲噪声).

高斯噪声含有强度服从高斯或正态分布的噪声.(与前两者最大不同点)

研究滤波就是为了消除噪声干扰

图像滤波,即在尽量保留图像细节特征的条件下对目标像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接响到后续图像处理和分析的有效性和可靠性。

   由于成像系统、传输介质和记录设备等的不完善,数字图像在其形成、传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的像对象并不如预想时也会在结果图像中引入噪声。这些噪声在图像上常表现为一引起较强视觉效果的孤立象素点或象素块。一般,噪声信号与要研究的对象不相关它以无用的信息形式出现,扰乱图像的可观测信息。对于数字图像信号,噪声表为或大或小的极值,这些极值通过加减作用于图像象素的真实灰度值上,在图像造成亮、暗点干扰,极大降低了图像质量,影响图像复原、分割、特征提取、图识别等后继工作的进行。要构造一种有效抑制噪声的滤波机必须考虑两个基本问题能有效地去除目标和背景中的噪声;同时,能很好地护图像目标的形状、大小及特定的几何和拓扑结构特征。

几种滤波方式的介绍

频率滤波 :需要先进行傅立叶变换至频域处理然后再反变换回空间域 还原图像

空域滤波:直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。

线性滤波 :输出像素是输入像素邻域像素的线性组合 。(例如最常见的均值滤波和高斯滤波)

非线性滤波 :输出像素是输入像素邻域像素的非线性组合 (中值滤波、 边缘保持滤波等)

图像滤波的计算过程分析

滤波通常是用卷积或者相关来描述,而线性滤波一般是通过卷积来描述的。他们非常类似,但是还是会有不同。下面我们来根据相关和卷积计算过程来体会一下他们的具体区别:

卷积的计算步骤

1)卷积核绕自己的核心元素顺时针旋转180

2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方

3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘

4)第三步各结果的和做为该输入像素对应的输出像素

相关的计算步骤

1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方

2)将输入图像的像素值作为权重,乘以相关核

3)将上面各步得到的结果相加做为输出

可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。而计算相关过程中不需要旋转相关核。

例如:magic(3) =[8 1 6;3 5 7;4 9 2],旋转180度后就成了[2 9 4;7 5 3;6 18]

也称模糊处理,常用来减少图像噪声或者失真,降低图像分辨率。

其实,平滑处理就是对输入图像进行滤波,因此需要滤波器,包含线性滤波器和非线性滤波

线性滤波器处理的输出像素实际就是输入像素与滤波器(也称为核)的加权和。

输出像素 g(i,j) = 输入像素(∑f(i + k,l + j)  * h(k,l));h(k,l)仅仅是一个加权系数。也就是说,滤波器就是一个包含加权系数的窗口,滑过图像。常用的线性滤波器有:

1.简单模糊->其实就是归一化滤波器

核:

窗口中输入图像对应像素的简单平均值,也可以不缩放,即不做平均(上式不用系数)。大的孤立点,影响均值波动。

2.高斯滤波->用卷积核与输入图像的每个像素卷积,将最终计算结果之和作为输出图像的像素值。

它使用于真实图像在空间内像素变化缓慢,邻近点的像素变化不会很明显,但是随即两个点就可能形成很大的像素差,正是基于这一点,高斯滤波在保留信号的条件下减少噪声,但该方法在边缘就无效了,会磨平边缘。

3.中值滤波->将中心像素的正方形领域内的每个像素用中间值替换。可改善简单模糊的缺点。

4.双边滤波->因为某些滤波器不仅会消除噪声,还会连同边缘一起磨掉,而双边滤波则可以在一定程度上避免这种滤波。但会很慢。

双边滤波与高斯滤波类似,对相似的像素赋予较高的权重,不相似的基于较低权重,分两部分,第一部分与高斯相同,第二部分也属于高斯加权,但不是基于空间距离,而是基于其他像素与中心像素的灰度差加权。可用于图像分割。

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter.html





OpenCV之图像平滑处理相关推荐

  1. python调用opencv代码_Python调用OpenCV实现图像平滑代码实例

    主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波. 给图像增加噪声: import cv2 import numpy as np def test ...

  2. Python+OpenCV:图像平滑

    Python+OpenCV:图像平滑 二维卷积(图像滤波) ###################################################################### ...

  3. Python调用OpenCV实现图像平滑处理

    1 前言 上一节,我们介绍了C++调用OpenCV接口,如何实现对图像的平滑处理,本节我们介绍一下在Python环境下调用OPenCV接口,如何对图像进行平滑模糊处理.接下来我们依次介绍均值滤波器.中 ...

  4. Python 计算机视觉(九)—— OpenCV进行图像平滑

    参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...

  5. C++调用OpenCV实现图像平滑处理

    1 前言 图像的平滑处理,也叫做模糊处理,是在尽量保留原始图像信息的情况下,抑制或去除图像内的噪声.降低细节层次信息等一系列过程.是一种操作简单但使用频率很高的图像处理方法.由于实际的图像索引方式,与 ...

  6. 【OpenCV】图像平滑

    图像平滑   平滑是smoothing,也称blurring.在图像处理中经常用到,其中一个用途就是降噪.图像平滑通过滤波器来实现,h(k,l)是掩模:   常用平滑滤波器有:   1. 归一化滤波器 ...

  7. OpenCV图像处理——图像平滑

    总目录 图像处理总目录←点击这里 五.图像平滑 可以看出图像被加入了椒盐噪声,需要平滑处理(去噪) img = cv2.imread('./image/lenaNoise.png') cv2.imsh ...

  8. opencv图像处理-图像平滑

    图像平滑是一种区域增强算法,在图像产生.传输和复制的过程中,会因为多方面原因而产生噪声(某一像素与周围像素点相比有明显不同)或丢失数据,因而图像的质量会降低.此时就需要对图像进行一定的增强处理,以降低 ...

  9. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    作者 | 杨秀璋,责编 | 夕颜 题图  | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...

最新文章

  1. PyCharm2017软件安装教程
  2. keil 5 出现 error:  #67: expected a } 错误解决
  3. 开发人员学Linux(3):CentOS7中安装JDK8和Tomcat8
  4. hdu 2795(线段树)
  5. SAP Spartacus b2b 页面 popover append to body与否的不同行为
  6. 为什么我从 Git Flow 开发模式切换到了 Trunk Based 开发模式?
  7. Linux NULL定义
  8. 用实力给自己正名,YOLOv5:道路损伤检测我最强!GRDDC'2020大赛报告
  9. Android7.0 发生的android.os.FileUriExposedException错误
  10. 计算机表格中需要乘法求和,《怎么在Excel表格里面使用乘法求和》
  11. 数据库与hadoop_OLTP,MPP和Hadoop
  12. openstack相关资料集结
  13. Itextpdf5 基础知识
  14. Android系统裁剪 apk
  15. Scrapy爬取豆瓣读书全站
  16. 【不懂就问】CPU 到底是怎么识别代码的?
  17. 登录管理(权限管理) token
  18. Docker可视化工具Portainer安装
  19. 计算机病毒的自述,电脑的自述作文500字
  20. 竞价排名对SEO的影响

热门文章

  1. 使用Kmeans聚类分析对复杂的数据进行分类
  2. 用Prime95来做linux下CPU压力测试
  3. python语音开发库-各种 Python 库/模块/工具
  4. 小甲鱼java视频_b站有哪些好的java视频?
  5. php ext在哪里,PHP Ext API
  6. 视频抽帧并存图 python_使用Python实现跳帧截取视频帧
  7. php 数组元素 转 变量,php变量与数组相互转换的方法(extract与compact)
  8. linux安装java路径_Linux环境中查看java的安装路径,设置环境变量
  9. python通讯录的录入与测试_python实现手机通讯录搜索功能
  10. android 屏幕录制方案,Android录制屏幕的实现方法