0、参考:
《数字图像滤波算法的研究及应用》倪层敏 著
1、噪声基础
1.1、空间区域分类
-
分布模型分类:Gaussian噪声、瑞利噪声、泊松噪声、乘性噪声、脉冲噪声、均匀分布噪声
-
频域谱波形分类:均匀分布噪声、白噪声(噪声的功率谱为参数,且与图像线性无关)1/f噪声、a f 2 f^{2} f2噪声,其中f表示噪声频率
-
其他按照空间或者时间上的相关与不相关来分类,按照信号的是否平稳爱分类
1.1.1、高斯噪声:
- 高斯噪声:概率密度函数是高斯分布(即正态分布)当一类噪声。高斯随机变量的概率密度函数:
f(x)=
1
2
π
σ
e
−
(
x
−
μ
)
2
2
σ
2
\dfrac{1}{\sqrt{2\pi\sigma}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}
2πσ1e−2σ2(x−μ)2
x:灰度值
μ
\mu
μ:灰度值x的均值
σ
\sigma
σ:灰度值x的标准差,
σ
2
\sigma^2
σ2表示灰度值x的方差,反映灰度值的离散情况。
根据 中心极限定理,在自然界中,一些现象受到许多相互独立的随机因素的影响,如果每个因素所产生的影响都很微小,那么总的影响的和近似服从正态分布。
- 高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
高斯白噪声的二阶矩不相关,一阶矩为参数,其产生的原因为图像传感器在拍摄时视场不够明亮、亮度不够均匀;电路中各元器件自身噪声和相互影响;图像传感器长期工作温度过高等。
1.1.2、瑞利噪声
- 瑞利噪声(Rayleigh):基于瑞利分布的噪声模型,瑞利分布是常被用于描述平坦衰落信号接收包络或独立多径分量接收包络统计时变特性的一种分布类型。
当一个随机二维向量的两个分量呈独立的、有着相同的方差的正态分布时,这个向量呈瑞利分布。
瑞利噪声的概率密度函数:
f
(
x
)
=
{
2
b
(
x
−
a
)
e
−
(
x
−
a
)
2
b
x
≥
a
0
x<a
f(x)= \begin{cases} \dfrac{2}{b}(x-a)e^{\frac{-(x-a)^2}{b}}& \text{x$\geq$a}\\ 0& \text{x<a} \end{cases}
f(x)=⎩⎨⎧b2(x−a)eb−(x−a)20x≥ax<a
均值:
μ
=
a
+
π
b
4
\mu=a+\sqrt{\frac{\pi b}{4}}
μ=a+4πb
方案:
σ
2
=
b
(
4
−
π
)
4
\sigma^2=\frac{b(4-\pi)}{4}
σ2=4b(4−π)
瑞利分布的密度函数在第一象限,距原点的位移及密度函数的图形向右变形,其直方图和密度函数都呈现出右偏的分布,而不是对称分布。
实现瑞利噪声:https://www.saoniuhuo.com/question/detail-2472629.html
1.1.3、伽马噪声
- 伽马(Erlang)噪声:又称为爱尔兰噪声,是噪声分布服从伽马曲线的分布。
- 伽马噪声的概率密度函数为:
f ( x ) = { a b x b − 1 ( b − 1 ) ! e a z x ≥ 0 0 x<0 a > 0 , b ∈ N f(x)= \begin{cases} \dfrac{a^b x^{b-1}}{(b-1)!}e^{az}& \text{x$\geq$0}\\ 0& \text{x<0} \end{cases} a>0,b\in N f(x)=⎩⎨⎧(b−1)!abxb−1eaz0x≥0x<0a>0,b∈N
均值: μ = b a \mu=\dfrac{b}{a} μ=ab
方差: σ 2 = b a 2 \sigma^2=\dfrac{b}{a^2} σ2=a2b
伽马噪声的实现需要使用b各服从指数分布的噪声叠加而成。指数分布的噪声,可以使用均匀分布来实现,当b=1时,伽马噪声就是指数噪声了。
1.1.4、均匀分布噪声
- 指数分布噪声:指概率密度函数为均匀分布的噪声,均匀分布的概率密度:
f ( x ) = { 1 b − a a ≤ x ≤ b 1 其他 f(x)= \begin{cases} \dfrac{1}{b-a}& \text{a$\leq$x$\leq$b}\\ 1& \text{其他} \end{cases} f(x)=⎩⎨⎧b−a11a≤x≤b其他
1.1.5、泊松噪声
- 泊松(Poisson)噪声:服从泊松分布的噪声模型,其概率分布律为离散型的泊松分布。
服从泊松分布例子:服务机构在一定时间内收到的服务请求数,电话交换机某时间段内收到的呼叫数,在汽车某站点上等待的乘客数,机器故障数,长时间段内某地区发生的自然故障等
在图像生成和传输中,由于光的量子效应,光电探测器表面上的量子到达的数量存在统计波动。因此,图像监测具有颗粒性,这导致图像对比度降低并且图像细节被隐藏,把因为光量子效应而造成的测量不确定性称为图像的泊松噪声。泊松噪声一般在亮度很小或者高倍电子放大线路中出现。
1.1.6、加性噪声、乘性噪声
- 与信号伴生的传感器噪声(对于大多数传感器),可以模拟为高斯分布或者泊松分布的随机过程;颗粒噪声可以认为是一种白噪声的过程,在密度域中是高斯分布的加性白噪声,而在强度域中为乘性噪声。
- 乘性噪声例子:合成孔径雷达超声波、激光等相干图像系统当中,它是新到信道随机变化引起的噪声。
例如,店里蹭喝对流层的随机变化引起信号不反映任何消息含义的随机变化,而构成对信号的干扰。
上述例子中,这类噪声只有在性好出现在上述信道中才表现出来,它不会主动对信号形成干扰,因此称为乘性噪声。
1.1.7、椒盐噪声
- 往往在解码误差时产生,表现为图像中出现黑或白的点子,在暗的或亮的图像区域更明显(暗区的白点,亮区的黑点),它是由幅度很大的短暂的正值或负值干扰造成的,实际上是一种脉冲噪声。这些黑白点像胡椒和盐粉撒落在图像上,所以叫椒盐噪声。
- 每个像素点上的脉冲噪声通常在空间上是不相关的,且与原图像无关。椒盐噪声的概率密度为:
f ( x ) = { P a x=a P b x=b 0 其他 f(x)= \begin{cases} P_a& \text{x=a}\\ P_b& \text{x=b}\\ 0&\text{其他} \end{cases} f(x)=⎩⎪⎨⎪⎧PaPb0x=ax=b其他
图像中的噪声灰度值只会出现a和b两种类型,而且出现的概率分布为 P a P_a Pa和 P b P_b Pb。
1.2、去噪复原方法
1.2.1、概述
- 降质图像复原的过程可概括为3个步骤:构建图像降质模型、设计降质图像复原模型及算法、评价降质图像复原质量
- 按滤波方式划分:频域、空域
频域方法:傅立叶变换、小波变换 + 频域低通滤波器
空域方法:图像本身存在的二维空间里对噪声图像进行处理,主要根据各种平滑函数对噪声图像进行卷积处理。
频域 | 空域 |
---|---|
维纳滤波; 逆滤波; 低通、带通、同态滤波; 小波滤波; 卡尔曼滤波; 约束最小方差滤波 | 均值滤波; 统计排序滤波; 中值滤波、改进的中值滤波; 开关滤波、自适应滤波; 基于模糊数学、神经网络、偏微分方程、矩阵分析、深度学习等的方法 |
空域滤波算法的线性与非线性:
- 线性=》线性滤波的理论相对成熟,以局部均值为代表的线性滤波算法能有效去除高斯噪声,对加性高斯噪声又较好的平滑作用,滤除信号无关的随机噪声。
缺陷:处理脉冲信号与噪声频谱混叠时效果不好,且容易破坏图像的边缘信息- 非线性=》以局部中值为代表的非线性滤波算法,通常是依据输入信号序列把一些特定的噪声映射为0。这样可以在最佳滤波准则下提高图像的边缘保护能力,有效去除脉冲噪声。
缺陷:随机分布的噪声滤波效果差(但是能较好保持图像的边缘细节)
其他滤波器
非局部均值滤波、Bilateral filtering、基于噪声估计的高斯滤波器等
1.3、图像质量评价方法
图像质量的含义包含两个方面:
- 一是图像的逼真度:复原后图像与标准图像的相似程度
- 二是图像的可读懂性:恢复后的图像像人活机器提供信息的能力
1.3.1、主观评价法
就是基于观察者的主观感受来评价图像质量,根据视觉效果的质量对同一图像评分,并对平均评分进行加权测算。
- 基本步骤:首先将图像呈现给一组观察者进行查看,然后不同观察者根据自己判断对图像质量进行评分,然后使用某种数据处理(如拟合、绘制等)对大量评分数据进行处理,以评估图像对主观质量,以及图像质量的平均得分后标准偏差。
- 优劣势:主观方法是最可靠的。但是需要多次重复评估,费时费力,容易受到观察者的的个人情感和偏好的影响,难以在实践中应用。
1.3.2、客观评价法
客观的评估方法是使用恢复图像偏离原始图像的误差,以测量还原后图像的质量。主要分两类:
- 基于纯像素点间误差的评价方法
- 基于图像间结构相似度的评价方法
设 O i , j O_{i,j} Oi,j和 I i , j I{i,j} Ii,j分别表示原始图像的像素灰度值和退化图像经过处理后的像素灰度值,m、n表示图像的高度和宽度。基于纯像素点间误差的滤波器的性能或者图像恢复的优势可以用下面几个客观指标来衡量。
1.3.2.1、均方误差(mean square error,MSE,均方差)
M S E = 1 m ∗ n ∑ i ∑ j ( O i , j − I i , j ) 2 MSE=\dfrac{1}{m*n}\sum_i\sum_j(O_{i,j}-I_{i,j})^2 MSE=m∗n1i∑j∑(Oi,j−Ii,j)2
1.3.2.2、峰值信噪比(peak signal to noise ratio,PSNR)
p
s
n
r
=
10
l
g
(
m
a
x
I
2
M
S
E
)
psnr=10 lg(\dfrac{max_I^2}{MSE})
psnr=10lg(MSEmaxI2)
其中
m
a
x
I
max_I
maxI表示图像可能的最大像素值,如果每个像素都由8bit表示,
m
a
x
I
max_I
maxI就是255 。如果每个像素都由B位二进制表示,那么
m
a
x
I
=
2
B
−
1
max_I=2^B-1
maxI=2B−1。对于浮点型数据,
m
a
x
I
=
1
max_I=1
maxI=1。
上面是针对灰度图像的计算方法,如果是彩色图像,通常有3种方法计算PSNR。
- 分别计算RGB三通道的PSNR,然后取平均值;
- 计算RGB三通道的MSE,然后除以3
- 将图片转化为YCbCr格式,然后只计算Y分量也就是亮度分量的PSNR。
- 方法2和方法3比较常见。MSE越小或者PSNR越大,说明恢复的图像与原始图像越接近,处理效果越好。
1.3.2.3、信噪比(signal-to-noise ratio,SNR)
S
N
R
=
10
l
g
(
P
s
P
n
)
SNR=10lg(\dfrac{P_s}{P_n})
SNR=10lg(PnPs)
其中,
P
s
P_s
Ps和
P
n
P_n
Pn分别代表信号和噪声的有效功率。
信噪比等于图像信号与噪声信号的功率谱之比,但是通常功率谱难以计算,故常用信号与噪声的方差之比来统计图像信噪比。首先计算图像所有像素的局部方差,将局部方差的最大值认为是信号方差,最小值是噪声方差,求出它们的比值,再转成dB数,最后用经验公式修正,具体参数参考“反卷机与信号复原”(邹谋炎)
1.3.2.4、平均绝对误差(mean absolute error,MAE)
M A E = 1 m ∗ n ∑ i ∑ j ∣ O i , j − I i , j ∣ MAE=\dfrac{1}{m*n}\sum_i\sum_j|O_{i,j}-I{i,j}| MAE=m∗n1i∑j∑∣Oi,j−Ii,j∣
1.3.2.5、标准均方误差(normal mean square error,NMAE)
N M A E = ∑ i ∑ j ∣ O i , j − I i , j ∣ ∑ i ∑ j O i , j NMAE=\dfrac{\sum_i\sum_j|O_{i,j}-I_{i,j}|}{\sum_i\sum_jO_{i,j}} NMAE=∑i∑jOi,j∑i∑j∣Oi,j−Ii,j∣
1.3.2.6、图像信噪比改善因子R
R
=
10
l
g
∑
i
=
1
m
∑
j
=
1
n
(
O
i
,
j
−
I
i
,
j
)
2
∑
i
=
1
m
∑
j
=
1
n
(
X
i
,
j
−
I
i
,
j
)
2
R=10lg\dfrac{\sum_{i=1}^m\sum_{j=1}^{n}(O_{i,j}-I_{i,j})^2}{\sum_{i=1}^m\sum_{j=1}^n(X_{i,j}-I_{i,j})^2}
R=10lg∑i=1m∑j=1n(Xi,j−Ii,j)2∑i=1m∑j=1n(Oi,j−Ii,j)2
式中,
O
i
,
j
O_{i,j}
Oi,j:原始标准图像的像素灰度值
I
i
,
j
I_{i,j}
Ii,j:退化图像经过图像处理后的像素灰度值
X
i
,
j
:
X_{i,j}:
Xi,j:加入噪声后的图像灰度值
若R为负数则说明滤波后噪声被抑制,R越小说明滤波后的效果越好。
1.3.2.7、图像间结构相似度的评价方法(structural Similarity Between Images,SSIM)
参考:https://blog.csdn.net/weixin_46838716/article/details/125491677
SSIM的输入是两张图像,其中一张是原始无失真图像,记为x,另一张就是图像复原后恢复出的图像,记为y,用
u
x
u_x
ux,
u
y
u_y
uy,
σ
x
2
\sigma_x^2
σx2,
σ
y
2
\sigma_y^2
σy2,
σ
x
y
\sigma_{xy}
σxy分别表示图像x和y的均值和方差及x与y的协方差。
S
S
I
M
(
x
,
y
)
=
l
(
x
,
y
)
α
c
(
x
,
y
)
β
s
(
x
,
y
)
γ
SSIM(x,y)=l(x,y)^\alpha c(x,y)^\beta s(x,y)^\gamma
SSIM(x,y)=l(x,y)αc(x,y)βs(x,y)γ
式中,
亮
度
(
l
u
m
i
n
a
n
c
e
)
l
(
x
,
y
)
=
2
u
x
u
y
+
c
1
u
x
2
+
u
y
2
+
c
1
对
比
度
(
c
o
n
t
r
a
s
t
)
c
(
x
,
y
)
=
2
σ
x
σ
y
+
c
2
σ
x
2
+
σ
y
2
+
c
2
结
构
(
s
t
r
u
c
t
u
r
e
)
s
(
x
,
y
)
=
σ
x
y
+
c
3
σ
x
σ
y
+
c
3
亮度(luminance)l(x,y)=\dfrac{2u_xu_y+c_1}{u_x^2+u_y^2+c_1}\\对比度(contrast)c(x,y)=\dfrac{2\sigma_x\sigma_y+c_2}{\sigma_x^2+\sigma_y^2+c_2}\\结构(structure)s(x,y)=\dfrac{\sigma_{xy}+c_3}{\sigma_x\sigma_y+c_3}
亮度(luminance)l(x,y)=ux2+uy2+c12uxuy+c1对比度(contrast)c(x,y)=σx2+σy2+c22σxσy+c2结构(structure)s(x,y)=σxσy+c3σxy+c3
对于离散信号,用平均灰度作为亮度测量:
u x = 1 N ∑ i = 1 N x i u_x=\dfrac{1}{N}\sum^N_{i=1}x_i ux=N1i=1∑Nxi
然后,在测量系统去除平均灰度值,对于离散信号 x − u x x-u_x x−ux,可使用标准差来做对比度估计:
σ x = ( 1 N − 1 ∑ i = 1 N ( x i − μ x ) 2 ) 1 2 \sigma_x=(\dfrac{1}{N-1}\sum^N_{i=1}(x_i-\mu_x)^2)^\frac{1}{2} σx=(N−11i=1∑N(xi−μx)2)21
另外,
σ x y = 1 N − 1 ∑ i = 1 N ( x i − u x ) ( y i − u x ) \sigma_{xy}=\dfrac1{N-1}\sum_{i=1}^N(x_i-u_x)(y_i-u_x) σxy=N−11i=1∑N(xi−ux)(yi−ux)
c
1
、
c
2
、
c
3
c_1、c_2、c_3
c1、c2、c3是比较小的正常数,以防止SSIM(x,y)出现分母为0,SSIM从亮度l,对比度c和结构s三个层面组合来评价图像的复原程度,其中结构因素占主要比重。当
α
=
β
=
γ
=
1
\alpha=\beta=\gamma=1
α=β=γ=1,
c
3
=
c
2
/
2
c_3=c_2/2
c3=c2/2时,得
S
S
I
M
(
x
,
y
)
=
(
2
u
x
u
y
+
c
1
)
(
2
σ
x
y
+
c
2
)
(
u
x
2
+
u
y
2
+
c
1
)
(
σ
x
2
+
σ
y
2
+
c
2
)
SSIM(x,y)=\dfrac{(2u_xu_y+c_1)(2\sigma_{xy}+c_2)}{(u_x^2+u_y^2+c_1)(\sigma_x^2+\sigma_y^2+c_2)}
SSIM(x,y)=(ux2+uy2+c1)(σx2+σy2+c2)(2uxuy+c1)(2σxy+c2)
(有些网页写错了这个公式,将分子的
σ
x
y
\sigma_{xy}
σxy写成
σ
x
σ
y
\sigma_x \sigma_y
σxσy,无语😓)
SSIM算法实现:
- 先图像分片,计算图像内各图像片的值,然后所有图像片计算的值再取均值,作为SSIM值
- 或者使用高斯函数计算计算图像的均值、方差及协方差。
高斯函数法更常用,效率更高
SSIM越大,图像恢复质量越好。当2图像一摸一样时,SSIM=1。
1.3.3、无参照的图像质量评价法
1.3.3.1、灰度值平均梯度法(GMG)
分别将图像长度和宽度方向上的相邻像素灰度值做差后求平方和,再求均方根值,它能较好反映图像对比度和纹理变化特征,值越大表示图像越清晰。
G
M
G
=
1
(
m
−
1
)
(
n
−
1
)
∑
i
=
1
m
−
1
∑
j
=
1
n
−
1
∇
x
2
+
∇
y
2
2
=
1
(
m
−
1
)
(
n
−
1
)
∑
i
=
1
m
−
1
∑
j
=
1
n
−
1
[
g
(
i
,
j
+
1
)
−
g
(
i
,
j
)
]
2
+
[
g
(
i
+
1
,
j
)
−
g
(
i
,
j
)
]
2
2
GMG=\dfrac{1}{(m-1)(n-1)}\sum_{i=1}^{m-1}\sum_{j=1}^{n-1}\sqrt{\dfrac{\nabla_x^2+\nabla_y^2}{2}}\\=\dfrac{1}{(m-1)(n-1)}\sum_{i=1}^{m-1}\sum_{j=1}^{n-1}\sqrt{\dfrac{[g(i,j+1)-g(i,j)]^2+[g(i+1,j)-g(i,j)]^2}{2}}
GMG=(m−1)(n−1)1i=1∑m−1j=1∑n−12∇x2+∇y2=(m−1)(n−1)1i=1∑m−1j=1∑n−12[g(i,j+1)−g(i,j)]2+[g(i+1,j)−g(i,j)]2
1.3.3.2、拉普拉斯算子和方法
对每一个像素在3x3点领域内采用拉普拉斯算子得到8领域的微分值,然后在图像范围内求和:
L
S
=
∑
i
=
2
m
−
1
∑
j
=
2
n
−
1
∣
g
(
i
,
j
)
−
g
(
i
,
j
−
1
)
−
g
(
i
−
1
,
j
)
−
g
(
i
+
1
,
j
)
−
g
(
i
,
j
+
1
)
−
g
(
i
−
1
,
j
−
1
)
−
g
(
i
−
1
,
j
+
1
)
−
g
(
i
+
1
,
j
−
1
)
−
g
(
i
+
1
,
j
+
1
)
∣
(
m
−
2
)
(
n
−
2
)
LS=\dfrac{\sum_{i=2}^{m-1} \sum_{j=2}^{n-1}\mid g(i,j)-g(i,j-1)-g(i-1,j)-g(i+1,j)-g(i,j+1)-g(i-1,j-1)-g(i-1,j+1)-g(i+1,j-1)-g(i+1,j+1)\mid}{(m-2)(n-2)}
LS=(m−2)(n−2)∑i=2m−1∑j=2n−1∣g(i,j)−g(i,j−1)−g(i−1,j)−g(i+1,j)−g(i,j+1)−g(i−1,j−1)−g(i−1,j+1)−g(i+1,j−1)−g(i+1,j+1)∣
一般图像越清晰,轮廓越鲜明,每一像素附近的灰度值变化越大,LS值越大。