我想认识我自己

 

Graph-cut

图分割最重要的是各边权值的分配,一共有两种边,像素与像素之间的边(n-link)以及像素与终端节点的边(t-link)

      先将感兴趣区域转换成图G={V,E},V和E分别代表顶点和便.V中有两类顶点,区域内所有的像素点P以及两个终端定点S和T,S代表的是目标领域,T代表背景邻域。E中也包含两类边,区域内像素点之间的边N(n-links)以及像素点与终端顶点的边(t-links)。每个像素的灰度值用Ip表示(p属于P),每条边的能量(权值)用Ep表示,总能量E(A)= λR(A) + B(A),集合A是一个代表分割点的二值集合,A={Ap | p属于P}

if Ap belong to obj

     Ap = 1;

else Ap = 0;

(用户指定目标像素obj和背景像素bkg)

      R(A)是区域项,B(A)是边界项,λ是二者之间的重要因子决定他们的重要性。Rp(Ap)是将p判断为Ap的惩罚,即p为Ap的概率,概率可以通过指定的目标和背景的灰度直方图获得(与目标的灰度值相近则为目标像素的概率就大于为背景像素的概率),因为求的是最小值所以取概率的负对数值,为目标像素的概率越大那么Rp(1)越大,Rp(0)越小,所以{p,T}被切。

      B{p,q}中p和q是邻域像素,代表的是p和q之间的不连续性惩罚,p和q灰度值越相近则惩罚越大,相差越大惩罚越小,求最小能量时相差大的像素点之间的边{p,q}被切。


Rp(1) = -ln Pr(Ip|’obj’); Rp(0) = -ln Pr(Ip|’bkg’)


权值:

picture source:https://blog.csdn.net/zouxy09/article/details/8532111

实例:

a:指定两个点背景像素B和目标像素O

b:组成图G,线的粗细代表权值大小

c:计算能量最小值(从某个点出发选择权值最小的边cut),形成集合c,剪切

d:结果

picture source:https://blog.csdn.net/zouxy09/article/details/8532111

reference:

  • https://blog.csdn.net/zouxy09/article/details/8532111

  • Boykov Y Y, Jolly M P. Interactive graph cuts for optimal boundary & region segmentation of objects in ND images[C]//Computer Vision, 2001. ICCV 2001. Proceedings. Eighth IEEE International Conference on. IEEE, 2001, 1: 105-112.


评论
热度(2)
Top

© 突然想写博客 | Powered by LOFTER