7 图像的分割
(一)图像分割概述
图像分割的目的
图像分割
是指通过某种方法,使得画面场景中的目标物被分为不同的类别。
简单来说,图像分割是指通过某种方法,使得画面场景被分为“目标物”及“非目标物”两类,或者“前景” 及“背景”。
通常图像分割的实现方法是,将图像分为“黑”、“白”两类,这两类分别代表了两个不同的对象。
因为结果图像为二值图像,所以通常又称图像分割为图像的二值化处理
。
图像分割说明示例
图像分割的难点
图像分割是比较困难的。原因是画面中的场景通常是复杂的,要找出两个模式特征的差异,并且可以对该差异进行数学描述都是比较难的。
(二)图像分割方法的分类
图像分割方法的分类
图像分割方法依照分割时所依据的图像特性不同,大致可以分为三大类:
1️⃣ 阈值方法:根据图像的灰度值的分布特性确定某个阈值来进行图像分割。其中又分为 基于图像灰度分布 和 基于图像灰度空间分布的阈值方法。
2️⃣ 边界分割方法:通过检测出封闭的某个区域的边界来进行图像分割
3️⃣ 区域提取方法:根据特定区域与其他背景区域特性上的不同来进行图像分割
1)阈值分割
阈值分割方法原理上的计算公式如下:
g
(
i
,
j
)
=
{
1
,
f
(
i
,
j
)
≥
T
h
0
,
f
(
i
,
j
)
<
T
h
g(i,j)= \begin{cases} 1, & \text{$f(i,j)≥Th$} \\ 0, & \text{$f(i,j)<Th$} \end{cases}
g(i,j)={1,0,f(i,j)≥Thf(i,j)<Th
其中,
f
(
i
,
j
)
f(i,j)
f(i,j)为原始图像,
g
(
i
,
j
)
g(i,j)
g(i,j)为结果图像(二值),
T
h
Th
Th为阈值。 显然,阈值的选取决定了二值化效果的好坏。
① 基于灰度直方图的峰谷方法
设计思想
- 若图像的灰度直方图为双峰分布时,表明图像的内容大致为两个部分,分别为灰度分布的两个山峰的附近。
- 选择阈值为两峰间的谷底点,小于阈值的灰度变为0,大于阈值的灰度变为255,把图像分割成两部分。
- 这种方法可以保证错分概率最小。
② P-参数法
设计思想
- 对固定分辨率下的目标物,根据目标物在画面中所占的比例来选择阈值,进行二值化处理。
- p-参数法对于已知目标物在画面中所占比例的情况下使用比较有效。
基本原理
算法步骤
1)设图像的大小为
m
∗
n
m*n
m∗n,计算得到原图的灰度直方图
h
h
h;
2)输入目标物所占画面的比例
p
p
p;
3)尝试性地给定一个阈值
T
h
=
T
h
0
Th=Th_0
Th=Th0;
4)计算在Th下判定的目标物的像素点数
N
N
N;
N
=
∑
k
=
0
T
h
h
(
k
)
\color{red}N=\displaystyle\sum_{k=0}^{Th}h(k)
N=k=0∑Thh(k)
5)判断
p
s
=
N
/
(
m
∗
n
)
ps=N/(m*n)
ps=N/(m∗n)是否接近
p
p
p?
是, 则输出结果; 否则,
T
h
=
T
h
+
d
T
Th=Th+dT
Th=Th+dT; (if ps<p, 则dT>0;else dT<0), 转4),直到满足条件。
③ 均匀性度量法
设计思想
- 所谓的均匀性度量方法,是根据“物以类聚”的思想而设计的。
- 其基本设计思想是:属于“同一类别”的对象具有较大的一致性。
- 实现的手段是:以均值与方差作为度量均匀性的数字指标。
算法步骤
1)给定一个初始阈值
T
h
=
T
h
0
Th=Th_0
Th=Th0
(例如:可以默认为1,或者是128等), 则将原图分为
C
1
C1
C1和
C
2
C2
C2两类;
默认值为128是指从中间开始搜索; 默认值为1是指从头开始搜索。
2)分别计算两类的类内方差:
3)分别计算两类像素在图像中的分布概率:
计算分布概率的目的是:统计该类像素对图像的影响程度。
4)选择最佳阈值Th=Th*,使得下式成立:
找最佳阈值的方法有很多,最笨的方法就是遍历[1~254]。
④ 聚类方法
基本设计思想
- 聚类方法是采用了模式识别中的聚类思想。
- 以类内保持最大相似性以及类间保持最大距离为最佳阈值的求取目标。
算法步骤
1)给定一个初始阈值
T
h
=
T
h
0
Th=Th_0
Th=Th0
(例如:可以默认为1,或者是128等), 则将原图分为
C
1
C1
C1和
C
2
C2
C2两类;
默认值为128是指从中间开始搜索; 默认值为1是指从头开始搜索。
2)分别计算两类的类内方差:
3)进行分类处理:如果
∣
f
(
x
,
y
)
−
μ
1
∣
≤
∣
f
(
x
,
y
)
−
μ
2
∣
|f(x,y)-\mu1|≤|f(x,y)-\mu2|
∣f(x,y)−μ1∣≤∣f(x,y)−μ2∣ ,则
f
(
x
,
y
)
f(x,y)
f(x,y)属于
C
1
C1
C1,否则
f
(
x
,
y
)
f(x,y)
f(x,y)属于
C
2
C2
C2。
4)对上一步重新分类后得到的
C
1
C1
C1和
C
2
C2
C2中的所有像素,分别重新计算其各自的均值与方差。
5)如果下式收敛:
[
p
1
σ
1
2
+
p
2
σ
2
2
]
[ p_1\sigma_1^2+p_2\sigma_2^2]
[p1σ12+p2σ22]
则输出计算得到的阈值
T
h
(
t
−
1
)
Th(t-1)
Th(t−1), 否则重复3),4),5)。
2)边界分割方法
3)区域提取方法
① 霍夫变换
霍夫变换(直线检测)原理
霍夫变换(圆形检测)原理
② 区域生长
区域生长法(区域提取方法)
设计思路
把图像划分成一系列区域,确定每个区域区别于其他区域的特征,由此生成相似性判据,来判断每个像素应该属于那个区域。
基本思想 : 把具有相似性的像素集合起来构成区域。
实现方法
在每个要分割的区域内确定一个种子点,判断种子像素周围邻域是否有与种子像素相似的像素,若有,将新的像素包含在区域内,并作为新的种子继续生长,直到没有满足条件的像素点时停止生长。
关键技术
- 种子点的选取:选择待提取区域的具有代表性的点;可以是单个像素,也可以是包括若干个像素的子区域;
- 生长准则的确定(相似性准则):一般采用与种子点的距离度量(彩色、灰度、梯度等量之间的距离);
- 区域停止生长的条件:一般为区域大小、迭代次数或区域饱和。
bingo~ ✨ 一个人的价值不应该用他最坏的那天来衡量。