基于图的分割

Graph-Based Image Segmentation:每次对两个区域进行讨论,若满足要求则进行合并
 

首先看一下图的基本概念:

是由顶点集V(vertices)和边集E(edges)组成的集合,表示为G=(V, E),顶点v∈V,在论文即为单个的像素点,连接一对顶点的边(vi, vj)具有权重w(vi, vj),本文中的意义为顶点之间的不相似度(dissimilarity),所用的是无向图。

特殊的图,图中任意两个顶点,都有路径相连接,但是没有回路,最常见的二叉树等等。

最小生成树(minimum spanning tree)

特殊的树,给定需要连接的顶点,选择边权之和最小的树。

论文中,初始化时每一个像素点都是一个顶点,然后逐渐合并得到一个区域,确切地说是连接这个区域中的像素点的一个MST。如下图,棕色圆圈为顶点,线段为边,合并棕色顶点所生成的MST,对应的就是一个分割区域。分割后的结果其实就是森林。

 

1. 相似度

将图片视作图论中的graph,每个像素看做一个顶点(v),顶点之间的边的权重用来衡量相似度(w),对于RGB格式的图像,使用欧氏距离进行相似度衡量。(这里边的权重用距离定义,同样可以使用其他的颜色格式)

  

2. 分割区域的内部差

 

其中mst即为顶点集合C和边集合E所对应区域的最小生成树,其中最大的权值即为此区域的内部差。分割区域的内部差如公式所示,表示为顶点边的最大权重(边所连接的两点间最大距离)

3. 分割区域之间的差异

   

即连接两个区域所有边中,不相似度最小的边的不相似度,也就是两个区域最相似的地方的不相似度。(俩区域中任意顶点间的最小距离)

4. 判断两个区域间是否存在明显差异

基于以上两种概念,记 ,其中

当且仅当时认为二者差异明显,不需要合并(即diff(C1,C2)\leq min(Int(C1),Int(C2))时需要合并)

关于  函数,这是一个关于区域大小的反函数,区域越小,其对于边界的要求显然更加苛刻。我们知道当起初两个区域都是孤立的像素值时,,所有像素都是"零容忍"只有像素值完全一样才能合并,自然会导致过分割。所以刚开始的时候,应该给每个像素点设定一个可以容忍的范围,当生长到一定程度时,就应该去掉该初始容忍值的作用。其中,|C|为区域C所包含的像素点个数,如此,随着区域逐渐扩大,这一项的作用就越来越小,最后几乎可以忽略不计。那么k就是一个可以控制所形成的区域的大小的参数。k=0,则几乎每个像素都成为一个独立的区域,如果k=∞,整张图片都会聚集成一块。所以,k越大,分割后的图片也就越大。

5. 算法流程

  • 记此时边数为n

  • 将所有的边按照权值进行升序排列

     1°  选择当前权值最小的边,不直接使用此条边,记其端点为,当时,说明此时二者的差异比内部差更小,需要进行合并,否则跳过此条边

    2°  遍历所有的边,将过程1重复n次,直至全部遍历

 3°  将不同的点的集合赋予不同颜色显示。如图所示(网上图片):

   

以上描述的是依据区域之间边的权重进行合并,在最开始,每一个元素都是一个独立的区域。

 

转载自:

https://zhuanlan.zhihu.com/p/50707777

https://blog.csdn.net/surgewong/article/details/39008861

https://blog.csdn.net/guoyunfei20/article/details/78727972

https://blog.csdn.net/ttransposition/article/details/38024557?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值