1.图像噪声都有什么,各个噪声都是什么样?
来源:https://blog.csdn.net/weixin_40446557/article/details/81451651
一、什么是图像噪声?
噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。
二、噪声来源—两个方面
(1)图像获取过程中
两种常用类型的图像传感器CCD和CMOS采集图像过程中,由于受传感器材料属性、工作环境、电子元器件和电路结构等影响,会引入各种噪声,如电阻引起的热噪声、场效应管的沟道热噪声、光子噪声、暗电流噪声、光响应非均匀性噪声。
(2)图像信号传输过程中
由于传输介质和记录设备等的不完善,数字图像在其传输记录过程中往往会受到多种噪声的污染。另外,在图像处理的某些环节当输入的对象并不如预想时也会在结果图像中引入噪声。
三、常见噪声介绍
图像常见噪声基本上有以下四种,高斯噪声,泊松噪声,乘性噪声,椒盐噪声。
下面五幅图分别代表了,原图,以及添加了高斯噪声,泊松噪声,乘性噪声,椒盐噪声的图像。
1、原图:
2、高斯噪声(下图)
高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。
产生原因:
1)图像传感器在拍摄时市场不够明亮、亮度不够均匀;
2)电路各元器件自身噪声和相互影响;
3)图像传感器长期工作,温度过高。
3、泊松噪声(下图)
泊松噪声,就是符合泊松分布的噪声模型,泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数等等
4、乘性噪声(下图)
乘性噪声一般由信道不理想引起,它们与信号的关系是相乘,信号在它在,信号不在他也就不在。
5、椒盐噪声(下图)
椒盐噪声,椒盐噪声又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
椒盐噪声往往由图像切割引起。
2.线性滤波与非线性滤波
区别:
线性滤波器的原始数据与滤波结果是一种算术运算,即用加减乘除等运算实现,如均值滤波器(模板内像素灰度值的平均值)、高斯滤波器(高斯加权平均值)等。由于线性滤波器是算术运算,有固定的模板,因此滤波器的转移函数是可以确定并且是唯一的(转移函数即模板的傅里叶变换)。
非线性滤波器的原始数据与滤波结果是一种逻辑关系,即用逻辑运算实现,如最大值滤波器、最小值滤波器、中值滤波器等,是通过比较一定邻域内的灰度值大小来实现的,没有固定的模板,因而也就没有特定的转移函数(因为没有模板作傅里叶变换),另外,膨胀和腐蚀也是通过最大值、最小值滤波器实现的。
---------------------
作者:zqx951102
来源:CSDN
原文:https://blog.csdn.net/zqx951102/article/details/82967360
版权声明:本文为博主原创文章,转载请附上博文链接!
线性滤波包括:方框滤波、均值滤波(方框滤波的特殊情况)、高斯滤波。
非线性滤波包括:中值滤波(可以保存边缘,但细节会丢失)、双边滤波(边缘细节均可保存)。
3.均值滤波、高斯滤波、双边滤波的原理
作者:mpcv
链接:https://www.zhihu.com/question/54918332/answer/142137732
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
----------------- 1/24更新:----------------------
评论区有问到滤波和模糊区别的,那就一步到位,说下几个容易搞混的概念:
滤波(高通、低通、带通、带阻) 、模糊、去噪、平滑等。
看图:
(它们的范围大小以及相互包含关系如图所示)
滤波是对输入信号进行卷积处理的一个过程,写成一个函数的形式是这样的:
滤波 = 卷积( 输入信号 ,卷积模板 ) 卷积模板/掩膜 的不同决定了不同的滤波方式,也因此产生了高通、低通、带通、带阻等基本的滤波方式。
针对低通滤波,就是保留将信号中的低频部分,抑制高频部分。要达到这个目的,可以利用均值掩膜、高斯掩膜等对输入信号进行处理。
采用均值掩膜对输入信号进行卷积的滤波方式叫均值滤波;
采用高斯掩膜对输入信号进行卷积的滤波方式叫高斯滤波;
有问到:
高斯滤波和高斯模糊一样吗
答:一样。不加“高斯”这个限定词时,滤波的范畴要远远大于模糊,后者只是前者的一个子集。当加上“高斯”限定以后,所指代的卷积操作就是同一个操作了,因为根据方程 滤波 = 卷积( 输入信号 ,卷积模板 ),当两个操作的输入信号和卷积模板都一样时,这两个操作就是一个操作了。
那为什么不直接叫高斯滤波,还起个高斯模糊的名字呢?
那是因为这个滤波的效果看起来像是把图像给弄模糊了,所以又有了“高斯模糊”的叫法。
平滑也是类似的道理。
起这么多名字好乱啊,干嘛不统一?
就不! 你咬我啊
------------------ 以下原答案 ---------------------
首先:滤波是掩膜(mask)和图像的卷积。
然后:滤波过程分两步:
1)计算掩膜
2)卷积——掩膜上每一个位置的值和图像上对应位置的像素值的乘加运算
1. 高斯分布不是高斯模糊/滤波!!! ( x 3)
初学的时候,确实非常容易搞混这个。
1.1 高斯分布
绝大多数讲高斯滤波的文章或者博客都会给出下面的公式:
高斯分布公式:
以及告诉它的形状和性质:
(如图为一维高斯分布示意图,决定了分布对称中心,
决定了分布的形状——
越小形状越瘦高,
越大越矮胖)
然而在这里高斯分布公式到底是做什么的?
答:计算高斯滤波用的掩膜(Mask)
1.2 利用高斯分布求高斯掩膜
1.2.1 均值掩膜
首先看一下掩膜到底长什么样子,我们来一个最简单的——3x3均值滤波的掩膜:
可以看到,均值掩膜内所有系数均相等——为1/9,且他们的和为1。同理可知5x5均值滤波的掩膜。
1.2.2 高斯掩膜
高斯分布公式终于要出场了!
有个小问题:我们上面给出的高斯分布公式是一维的,但掩膜是二维的怎么办?
很简单,只需要把数值变为向量
即可:
(其中不必纠结于系数,因为它只是一个常数!并不会影响互相之间的比例关系,并且最终都要进行归一化,所以在实际计算时我们是忽略它而只计算后半部分的)
当为二维时,
。这个公式其实可以表示任意维度的高斯分布。
需要特别注意的是:本质上都是二维空间中的坐标:
是掩膜内任一点的坐标,
是掩膜中心的坐标!(统计学中称为均值,即坐标的均值)
敲黑板再说一遍: x和u, 是位置,是坐标!
于是乎,对于图像中任意一点(x,y),它周围的坐标为:
中间的(x,y)就是我们公式中的了, 当
遍历(x-1,y-1)...(x+1,y+1)时,
:
(只剩下常数没有x,y是因为在相减的过程中把x,y抵消掉了)
:
(这里取sigma为1.0)
归一化就得到高!斯!掩!膜!了:
所以你看,高斯掩膜的求解与位置(x,y)无关,因为在计算过程中x,y被抵消掉了,
因!此!——
高斯掩膜只要求解一次就够了! 当得到了这个模板,对图像的所有像素用这同一套模板去卷积就OK了!
1.3 利用高斯掩膜和图像进行卷积求解高斯模糊
这个过程就很简单了,如下图所示,没有别的,就是卷积:
117 =
102 * 0.075 + 108 * 0.124 + 110 * 0.075 +
119 * 0.124 + 120 * 0.204 + 110 * 0.124 +
129 * 0.075 + 130 * 0.124 + 132 * 0.075
130 =
172 * 0.075 + 175 * 0.124 + 172 * 0.075 +
112 * 0.124 + 123 * 0.204 + 88 * 0.124 +
98 * 0.075 + 115 * 0.124 + 128 * 0.075
所有像素都用图上的那一套模板进行卷积运算,最终得到滤波的结果。
贴个效果图:
嗯,可以的。
(为了防止被举报... ... 一点薄码,不成敬意) (逃
2. 算法实现
原理如果懂了,算法实现应该很简单,而且opencv也有现成函数可以调用,但opencv的效率其实也不高,可以看这个回答:OpenCV已经将图像处理(识别)的算法写成函数了,那我们还有必要去学习这些算法不? - mpcv 的回答 - 知乎
在这里提两个可以加速的地方:
1)把二维高斯滤波拆成两个一维高斯滤波——先x方向再y方向
他们是等价的,有兴趣的同学可以自行查找下相关证明。
例如:一个5x5的二维高斯滤波,每个像素需要进行25次乘、 24次加 运算;
变为2个1x5的高斯滤波后,每个像素进行 10次乘 、8次加 运算;
2)利用查表代替乘运算
可以看到,在卷积的过程中,所有的乘运算都是发生在掩膜系数和像素值之间。
而且: ① 掩膜系数是固定的:对于1x5的掩膜,只有3个不同的参数;
② 像素值的范围也是固定的: 0~255,256个值;
因此,所有系数和像素值的乘积只有3x256=768种不同的结果。 所以,这768个结果我们直接把它保存在一张表中即可!等用时直接查表!!!
于是上文的10次乘、8次加运算进一步缩减为了只剩8!次!加 !运 ! 算 !
最终我们的运算量改变为:
25次乘、24次加 -------------> 8次加!!!
WTF?
3. 双边滤波
双边滤波其实很简单,它只是比高斯滤波多了一种掩膜而已。两种掩膜都是套用高斯分布公式得出来的,只是其中的代表的含义不同而已。
求第一个掩膜所用的高斯分布中,代表掩膜中每一个点的位置,其中
为掩膜中心的位置;
求第二个掩膜所用的高斯分布中,代表掩膜中每一个点的像素亮度值,其中
为掩膜中心的像素亮度值;
(这里有一个是需要注意的:第二个掩膜是需要每次都求取的,因为像素的亮度值无法预先确定,不是维持一个固定不变的pattern)
对这就是双边滤波,不光考虑了像素在空间中位置远近程度的影响,还考虑了像素亮度相近程度的影响。
仅此而已。
客官,来都来了,点个赞再走呗(ฅ>ω<*ฅ)