图像分割定义与原理
- 图像分割定义:指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。
- 特性可以是灰度、颜色、纹理等,目标可以对应单个区域,也可以对应多个区域
- 图像分割算法是基于亮度值的不连续性和相似性
- 不连续性是基于亮度的不连续变化分割图像,如图像边缘
- 根据制定的准则将图像分割为相似的区域,如阈值处理,区域生长,区域分离和聚合
间断检测
- 点检测
- 线检测
- 边缘检测
- 一阶导数可以用于检测图像中的一个点是否在边缘上
- 二阶导数可以判断一个边缘像素是在边缘亮的一边还是暗的一边
- 一条连续二阶导数正值和负值的虚构直线将在边缘中点附近穿过零点
- 一阶导数使用梯度算子,二阶导数使用拉普拉斯算子
Hough检测算法
基本思想:
- 对于边界上的n个点的点集,找到共线的点集和直线方程
- 对于任意两点的直线方程:
y
=
a
x
+
b
y = ax + b
y=ax+b, 构造一个参数
a
,
b
a, b
a,b 的平面,从而有以下结论:
- x y xy xy平面上的任意一条直线 y = a x + b y = ax + b y=ax+b, 对应在参数ab平面上都有一个点
- 过 x y xy xy平面一个点 ( x , y ) (x, y) (x,y) 的所有直线,构成参数ab平面上的一条直线 b = − x a + y b = -xa + y b=−xa+y
- 如果两点共线那么这两个点在参数 a b ab ab平面上的直线有一个交点,具有相同的a和b
- 在参数
a
b
ab
ab平面上相交直线最多的点,对应的
x
y
xy
xy 平面上的直线就是我们的解
Hough变换算法实现(重点)
- 由于垂直直线的斜率 a a a 为无穷大,我们改用极坐标形式 x c o s θ + y s i n θ = ρ x cos\theta + y sin\theta = \rho xcosθ+ysinθ=ρ
- 参数平面为 θ , ρ \theta, \rho θ,ρ, 对应不是直线而是正弦曲线
- 使用交点累加器,或交点统计直方图,找出相交线段最多的参数空间的点
- 然后找出该点对应的 x y xy xy 平面的直线线段
圆的检测(考)
Hough变换不只对直线,也可以用于圆:
(
x
−
a
)
2
+
(
y
−
b
)
2
=
r
2
(x - a)^2 + (y - b)^2 = r^2
(x−a)2+(y−b)2=r2
- 在参数空间里建立一个3D(三个参数的空间)的累加单元的数组A,其元素可写为A(a, b, r)
- 让a和b一次变化而根据式计算出r,并对A累加:
A
(
a
,
b
,
r
)
=
A
(
a
,
b
,
r
)
+
1
A(a, b, r) = A(a, b, r) + 1
A(a,b,r)=A(a,b,r)+1
从理论上说,计算量和累加器尺寸随参数个数的增加是指数增加的,所以实际中Hough变换比较适合检测较简单曲线上的点
计算图像生成、区域分裂与合并
区域生长算法实现(每个步骤对应图的结果画下来)
- 根据图像的不同应用选择一个或一组
种子
,它或者是最亮或最暗的点,或者是位于点簇中心的点 - 选择一个描述符(
条件
)
需要满足的性质:- 连通性:每个 R i R_i Ri 都是一个连通区域
- 独立性:对于任意 i ≠ j i \neq j i=j, R i ∩ R j = ∅ R_i \cap R_j = \emptyset Ri∩Rj=∅
- 单一性:每个区域内的灰度相等(或在一定范围)
- 互斥性:任两个区域的灰度级不等
- 从该种子开始向外
扩张
,首先把种子像素加入结果集合,然后不断将与集合中各个像素连通,且满足描述符的像素加入集合 - 上一过程进行到
不再满足条件
的新节点加入集合为止
例:
分裂与合并算法
算法实现:
- 将图像分成大小相等的四个区域
- 对每个区域不满足相似性准则的继续划分
- 如果相邻的区域满足特定的准则,则将其合并
- 反复进行(1)和(2)操作,直至不再有新的分裂与合并为止
例:
基于形态学分水岭的分割
地形学的三个点:
- 属于局部性最小值的点
- 当一滴水放在某点的位置上时,水一定会下落到一个单一的最小值点。(集合称为最小值的分水岭)
- 当水处在某个点的位置上时,水会等概率地流向不止一个这样的最小值点(分水线或分割线)
主要目标是找出分水线
:
- 假设在每个区域最小值的位置上打一个洞,并且让水均匀的上升速率从洞中涌出,从低到高淹没整个地形
- 当处在不同汇聚地中的水将要聚合在一起时,修建的大坝将阻止聚合。这些大坝边界对应于分水岭的分割线