图像处理学习笔记-03-灰度变换与空间滤波-模糊技术
混合空间增强法
将多种图像增强方法结合起来,完成困难的图像增强任务
使用模糊技术进行灰度变换和空间滤波
目的:例如将人分为年轻人和非年轻人,使用一个确定的阈值例如20岁,那么20岁过1秒的人也属于非年轻人,我们需要更加弹性的在年轻和非年轻之间过渡
模糊集合论原理
Z
Z
Z是一个元素集,
z
z
z表示
Z
Z
Z的一类元素,即
Z
=
{
z
}
Z = \{z\}
Z={z},该集合称为论域,模糊集合
A
A
A由隶属度函数
μ
A
(
z
)
\mu_A(z)
μA(z)来表征:
A
=
{
z
,
μ
A
(
z
)
∣
z
∈
Z
}
A = \{z,\mu_A(z)|z \in Z\}
A={z,μA(z)∣z∈Z}
当隶属度函数值为1表示该元素是集合的完全成员,隶属度函数值位于0和1之间表示在集合中的隶属度等级为隶属度函数值,隶属度函数值为0表示该元素不属于该集合
- 空集: Z Z Z中的隶属度函数值为0,模糊集合为空集;
- 相等:当且仅当对于所有的 z ∈ Z , μ A ( z ) = μ B ( z ) z \in Z,\mu_A(z) = \mu_B(z) z∈Z,μA(z)=μB(z),则称两个模糊集合 A A A和 B B B相等;
- 补集:由
A
‾
\overline{A}
A或
N
O
T
(
A
)
NOT(A)
NOT(A)表示模糊集合
A
A
A的补集,定义其隶属度函数为:
μ A ‾ ( z ) = 1 − μ A ( z ) \mu_{\overline{A}}(z) = 1 - \mu_A(z) μA(z)=1−μA(z) - 子集:当且仅当对于所有的
z
∈
Z
z \in Z
z∈Z有:
μ A ( z ) ≤ μ B ( z ) \mu_A(z) \leq \mu_B(z) μA(z)≤μB(z)
此时,模糊集合 A A A是模糊集合 B B B的子集; - 并集:
- 对于所有的
z
∈
Z
z \in Z
z∈Z,具有隶属度函数:
μ U ( z ) = m a x [ μ A ( z ) , μ B ( z ) ] \mu_U(z) = max[\mu_A(z),\mu_B(z)] μU(z)=max[μA(z),μB(z)]
的并集 U U U表示为 A ⋃ B A \bigcup B A⋃B或 A O R B A\ OR\ B A OR B - 对于所有的
z
∈
Z
z \in Z
z∈Z,具有隶属度函数:
μ I ( z ) = m i n [ μ A ( z ) , μ B ( z ) ] \mu_I(z) = min[\mu_A(z),\mu_B(z)] μI(z)=min[μA(z),μB(z)]
的交集 I I I表示为 A ⋂ B A \bigcap B A⋂B或 A A N D B A\ AND\ B A AND B
模糊集合应用
假设生的水果是绿色的,半熟的水果是黄色的,成熟的水果是红色的,对应规则集:
- R 1 R_1 R1:IF颜色是绿色,THEN水果是生的
- R 2 R_2 R2:IF颜色是黄色,THEN水果是半熟的
- R 3 R_3 R3:IF颜色是红色,THEN水果是熟的
颜色采用波长这一值来表示,下图表示不同的波长对应不同颜色的隶属度,也就是输入的隶属度函数:
输出本身也是模糊的:
以红色
A
N
D
AND
AND成熟规则
R
3
R_3
R3为例,这是一个二维的隶属度函数,表示为一个笛卡尔积
(
z
,
v
)
(z,v)
(z,v)到
[
0
,
1
]
[0,1]
[0,1]的映射:
μ
3
(
z
,
v
)
=
m
i
n
{
μ
r
e
d
(
z
)
,
μ
m
a
t
(
v
)
}
\mu_3(z,v) = min\{\mu_{red}(z),\mu_{mat}(v)\}
μ3(z,v)=min{μred(z),μmat(v)}
上式是一个通用解,此时一个特定的输入
z
0
z_0
z0,此时用
Q
3
(
v
)
Q_3(v)
Q3(v)表示,
c
=
μ
r
e
d
(
z
0
)
c = \mu_{red}(z_0)
c=μred(z0),唯一的变量为
v
v
v:
Q
3
(
v
)
=
m
i
n
{
μ
r
e
d
(
z
0
)
,
μ
m
a
t
(
z
0
,
v
)
}
Q_3(v) = min\{\mu_{red}(z_0),\mu_{mat}(z_0,v)\}
Q3(v)=min{μred(z0),μmat(z0,v)}
同理,我们可以得到另外两个规则和输入
z
0
z_0
z0导致的模糊响应:
Q
1
(
v
)
=
m
i
n
{
μ
g
r
e
e
n
(
z
0
)
,
μ
1
(
z
0
,
v
)
}
Q
2
(
v
)
=
m
i
n
{
μ
y
e
l
l
o
w
(
z
0
)
,
μ
2
(
z
0
,
v
)
}
Q_1(v) = min\{\mu_{green}(z_0),\mu_{1}(z_0,v)\} \\ Q_2(v) = min\{\mu_{yellow}(z_0),\mu_{2}(z_0,v)\}
Q1(v)=min{μgreen(z0),μ1(z0,v)}Q2(v)=min{μyellow(z0),μ2(z0,v)}
由于三个规则之间是通过
O
R
OR
OR操作连接起来的:
Q
=
Q
1
O
R
Q
2
O
R
Q
3
Q = Q_1 \ OR \ Q_2 \ OR \ Q_3
Q=Q1 OR Q2 OR Q3
所以我们可以得到结果如下:
r
=
{
1
,
2
,
3
}
,
s
=
{
绿色
,
黄色
,
红色
}
r = \{1,2,3\},s = \{绿色,黄色,红色\}
r={1,2,3},s={绿色,黄色,红色},见下图
Q
(
v
)
=
m
a
x
r
{
m
i
n
s
{
μ
s
(
z
0
)
,
μ
r
(
z
0
,
v
)
}
}
Q(v) = \mathop{max}\limits_{r} \left\{ \mathop{min}\limits_{s} \left\{ \mu_s(z_0),\mu_r(z_0,v)\right\}\right\}
Q(v)=rmax{smin{μs(z0),μr(z0,v)}}
之后进行去模糊操作求出一个干脆的输出
v
0
v_0
v0,计算集合的重心,假设
Q
(
v
)
Q(v)
Q(v)有
K
K
K种取值:
v
0
=
∑
v
=
1
K
v
Q
(
v
)
∑
v
=
1
K
Q
(
v
)
v_0 = \frac{\sum_{v = 1}^KvQ(v)}{\sum_{v = 1}^KQ(v)}
v0=∑v=1KQ(v)∑v=1KvQ(v)
得到
v
0
=
72.3
v_0 = 72.3
v0=72.3,指出给定的颜色
z
0
z_0
z0成熟度约为
72
%
72\%
72%
总结:
- 模糊输入:对于每个标量输入,例如颜色,使用隶属度函数找到相应的模糊值;
- 合并各个部分的输出,利用模糊集合操作交和并,例如前提为绿色或坚硬,合并时用 O R OR OR;
- 每一个规则,例如红色 A N D AND AND成熟,前提和输出之间使用 A N D AND AND连接;
- 将不同的规则聚合起来,使用 O R OR OR操作;
- 将最后输出的模糊集合去模糊操作,得到一个干脆的标量输出,例如计算重心;
使用模糊集合进行灰度变换
考虑如下的一个例子:
- IF一个像素是暗的,THEN使它较暗;
- IF一个像素是灰的,THEN使它仍是灰的;
- IF一个像素是亮的,THEN使它较亮;
最终得到的 Q Q Q如下右图所示:
对于任何输入 z 0 z_0 z0,输出 v 0 v_0 v0由下式给出:
v 0 = μ d a r k ( z 0 ) × v d + μ g r a y ( z 0 ) × v g + μ b r i g h t ( z 0 ) × v b μ d a r k ( z 0 ) + μ g r a y ( z 0 ) + μ b r i g h t ( z 0 ) v_0 = \frac{\mu_{dark}(z_0) \times v_d + \mu_{gray}(z_0) \times v_g + \mu_{bright}(z_0) \times v_b}{\mu_{dark}(z_0) + \mu_{gray}(z_0) + \mu_{bright}(z_0)} v0=μdark(z0)+μgray(z0)+μbright(z0)μdark(z0)×vd+μgray(z0)×vg+μbright(z0)×vb
使用模糊集合进行空间滤波
例如一个模糊集合概念的边缘提取算法:如果一个像素属于平滑区,则令其为白色,否则令其为黑色;这个概念可以翻译为如下的规则集:
如图为邻域,假设像素标为
z
i
,
i
=
1
,
2
,
⋯
,
9
z_i,i = 1,2,\cdots,9
zi,i=1,2,⋯,9,
d
i
d_i
di表示第
i
i
i个邻点和中心点的灰度差
d
i
=
z
i
−
z
5
d_i = z_i - z_5
di=zi−z5
- I F d 2 = 0 A N D d 6 = 0 T H E N z 5 = 白色 IF\ d_2 = 0 \ AND \ d_6 = 0\ THEN\ z_5 = 白色 IF d2=0 AND d6=0 THEN z5=白色
- I F d 6 = 0 A N D d 8 = 0 T H E N z 5 = 白色 IF\ d_6 = 0 \ AND \ d_8 = 0\ THEN\ z_5 = 白色 IF d6=0 AND d8=0 THEN z5=白色
- I F d 8 = 0 A N D d 4 = 0 T H E N z 5 = 白色 IF\ d_8 = 0 \ AND \ d_4 = 0\ THEN\ z_5 = 白色 IF d8=0 AND d4=0 THEN z5=白色
- I F d 4 = 0 A N D d 2 = 0 T H E N z 5 = 白色 IF\ d_4 = 0 \ AND \ d_2 = 0\ THEN\ z_5 = 白色 IF d4=0 AND d2=0 THEN z5=白色
- E L S E z 5 = 黑色 ELSE\ z_5 = 黑色 ELSE z5=黑色