图像分割(一)Contour Detection and Hierarchical Image Segmentation

三个部分:
gPb: global probability of boundary
OWT: Oriented Watershed Transform
UCM: Ultrametric Contour Map
针对各个像素,计算其作为边缘的权值(可能性)→用改进后的分水岭算法得到区域和边界→对得到的边界根据其差异性分层,通过设置阈值来得到细致程度不同的边界

gPb: 由mPb和sPb加权求和得到。
mPb:
||计算G(x,y,θ)
对灰度图任意一个像素,以其为圆心做圆,并用角度为θ的直径将圆平分为两个半圆。
对两个半圆分别做直方图统计,用得到的数据计算卡方距离:
X^2 (g,h)=1/2 ∑_i〖(g(i)-h(i))〗^2/(g(i)+h(i))
X^2 (g,h)即为G(x,y,θ),用其来表达θ方向上像素点的梯度。
||计算mPb
将图片分解到四个通道:brightness,color a,color b,texture,得到四幅图像。分别计算四个图像的G(x,y,θ)。
使用多个圆形直径长度δ(作者使用了三个:δ/2,δ,δ),对每一个δ计算其G(x,y,θ)。
mPb(x,y,θ)=∑s∑_iα(i,s) G_(i,σ(i,s) ) (x,y,θ)
公式含义:对每一个像素,对其不同直径下的四个通道的G(x,y,θ)进行加权计算。
sPb:
||计算W_ij
做对称矩阵W:W_ij=exp⁡(-(_p∈ij^max){mPb(p)}/ρ)表征像素之间的相似度。
公式含义:i,j代表两个距离不超过半径r的像素,找到这两个像素连成的线段上像素的最大权值。(ρ=0.1)
||计算特征向量
令D_ii=∑_jW_ij
由(D-W)ν= λDν,得到前n+1个特征向量(n=16)。
将每一特征向量看做一幅图片,使用Gaussian Directional Derivative Filters对其进行卷积操作得到:{∇_θ ν_k (x,y)}
||计算sPb
sPb(x,y,θ)=∑〖1/√(λ_k ) 〖∙∇〗θ ν_k (x,y) 〗
gPb:
gPb(x,y,θ)=∑s∑_iα(i,s) G_(i,σ(i,s) ) (x,y,θ)+γ∙sPb(x,y,θ)
最后对该gPb值做sigmoid函数变换,归一化。

OWT:
对每一个像素,代入八个固定角度θ∈[0,π],取其最大值作为权。(E(x,y,θ)即为gPb公式)
E(x,y)=〖max〗_θ E(x,y,θ)
则E(x,y)的大小即表征了每个像素是边界的可能性。
以E(x,y)作为输入,使用分水岭算法(WT),将图像转化为许多区域和分水线。
||改进WT:
先使用原始WT计算得到区域和分水线;
对于每一个分水线,将其分割为许多线段;
计算每个线段的方向,用o(x,y)表示其方向;
使用E(x,y,o(x,y))重新计算每个点的E(x,y);
重新计算每个分水线的强度,即取每个线上所有像素的权值的平均值作为最终权值。

UCM:
OWT算法输出细节度最高的区域集合。
作G=(Ρ_0,Κ_0,W(K_0)),W(K_0)是分水线的强度。
设两个区域间的差异性为其共同边界的强度平均值,使用基于图像的融合技术,以图像之间的差异性作为衡量标准,将各区域按照差异性从小到大排序,差异性小的区域被合并。
设定不同的阈值k,就可以得到不同细致程度的分割(边缘)。

你可能感兴趣的:(segment)