【CVAdd】Filter 滤波器
过滤器
- 滤波器的一些常用操作
- 降噪 De-noising
- 超分辨率 Super-resolution
- 图像修复 In-painting
- 图像的离散表示
- 图像分割成数组
- 灰度图与彩色图
- 滤波器操作
- 平滑处理 Smooth
- 图像分割 Segmentation
- 操作满足的性质
- 线性滤波器
- 保持不动
- 左右平移
- 模糊
- 锐化
滤波器的一些常用操作
降噪 De-noising
去除图像上的噪点。
超分辨率 Super-resolution
将模糊的图像变锐利。
图像修复 In-painting
修复一些外来因素引起的相关问题。
不论是降噪、超分辨率还是图像修复,其都是在原有图像上进行相关操作。
所以首先我将介绍一些针对图像操作以及图像的基础知识。
图像的离散表示
图像分割成数组
我们可以把图像分割成若干个小方格,其中每个小方格称为一个像素点。所以我们可以称2D图像是由m行*n列个像素构成的。由此,我们将一个图像转化为一个m行n列的数组。数组中的每个元素包含着颜色信息。
灰度图与彩色图
我们可以将图像分为灰度图像以及彩色图像。
灰度图: 灰度图由单个像素点,通过8位的灰度值(0-255)来表示,所以每个像素点可以表示为:
f
(
x
,
y
)
=
[
0
,
255
]
f(x,y)=[0, 255]
f(x,y)=[0,255]
彩色图: 彩色图由R、G、B三个不同的8位的灰度值(0-255)来表示,所以每个像素点可以表示为:
f
(
x
,
y
)
=
[
r
(
[
0
,
255
]
)
,
g
(
[
0
,
255
]
)
,
b
(
[
0
,
255
]
)
]
f(x,y)=[r([0, 255]),g([0, 255]),b([0, 255])]
f(x,y)=[r([0,255]),g([0,255]),b([0,255])]
滤波器操作
平滑处理 Smooth
M
o
v
i
n
g
A
v
e
r
a
g
e
Moving Average
MovingAverage
公式:
g
[
n
,
m
]
=
1
9
∑
k
=
n
−
1
n
+
1
∑
l
=
m
−
1
m
+
1
f
[
k
,
l
]
g[n,m]=\frac 1 9 \sum _{k=n-1} ^{n+1} \sum _{l=m-1} ^{m+1}f[k,l]
g[n,m]=91k=n−1∑n+1l=m−1∑m+1f[k,l]
红色:
1
9
(
0
∗
8
+
90
)
=
10
\frac 1 9 (0*8+90)=10
91(0∗8+90)=10
蓝色:
1
9
(
0
∗
6
+
90
∗
3
)
=
30
\frac 1 9 (0*6+90*3)=30
91(0∗6+90∗3)=30
绿色:
1
9
(
90
∗
9
)
=
90
\frac 1 9 (90*9)=90
91(90∗9)=90
橙色:
1
9
(
0
∗
8
+
90
)
=
10
\frac 1 9 (0*8+90)=10
91(0∗8+90)=10
最后构建出的
g
[
n
,
m
]
g[n,m]
g[n,m] 为:
图像分割 Segmentation
设定一个阈值threshold,进行分割。将每个像素依次对比像素的值与阈值,大于阈值的设置其像素值为255(黑色),小于阈值的设定为0(白色)。
操作满足的性质
其实该性质描述的就是数组的性质。我们将图像转化为数组后,就已经可以将其按照数学模型结构做出调整和解答。
可加性 Additivity
S
[
f
i
[
n
,
m
]
+
f
j
[
n
,
m
]
]
=
S
[
f
i
[
n
,
m
]
]
+
S
[
f
j
[
n
,
m
]
]
S[f_i[n,m]+f_j[n,m]]=S[f_i[n,m]]+S[f_j[n,m]]
S[fi[n,m]+fj[n,m]]=S[fi[n,m]]+S[fj[n,m]]
均匀性 Homogeneity
S
[
α
f
i
[
n
,
m
]
]
=
α
S
[
f
i
[
n
,
m
]
]
S[αf_i[n,m]]=αS[f_i[n,m]]
S[αfi[n,m]]=αS[fi[n,m]]
叠加性 Superposition
S
[
α
f
i
[
n
,
m
]
+
β
f
j
[
n
,
m
]
]
=
α
S
[
f
i
[
n
,
m
]
]
+
β
S
[
f
j
[
n
,
m
]
]
S[αf_i[n,m]+βf_j[n,m]]=αS[f_i[n,m]]+βS[f_j[n,m]]
S[αfi[n,m]+βfj[n,m]]=αS[fi[n,m]]+βS[fj[n,m]]
可逆性 Invertibility
S
−
1
[
S
[
f
i
[
n
,
m
]
]
]
=
f
i
[
n
,
m
]
S^{-1}[S[f_i[n,m]]]=f_i[n,m]
S−1[S[fi[n,m]]]=fi[n,m]
线性滤波器
保持不动
假设初始图片为:
线性滤波器为:
那么滤波后结果为:
没有任何变化。原因为:
左右平移
假设线性滤波为:
那么滤波后结果为:
向左平移一个像素,原因对照像素图可得。
模糊
假设线性滤波为:
那么滤波结果为:
将原图片模糊化。
锐化
锐化可以简单的理解为“描边大师”。
突出与区域平均(3*3)水平的差异。
红色: 很有意思的在于,原来一片区域都很小的值(0),现在更小了(-20,-10…);
绿色: 原来一片区域都很大的值(90),现在几乎没有变化(90)
蓝色: 原来一片区域部分很大的值,现在变得超级大。
观察下图:
一片区域都很小可以类比为背景,没有任何上色(全为0);
一片区域都很大的就可以类比为一大片的上色区域;
一片区域只有很小一部分有值可以类比为线段途径点。
而锐化所做到的其实就是将一片区域只有一小部分有值的部分更加突出,其实可以理解为拿笔再次进行描边。
End of Filter
2022.10.20