pcl最小图割(pcl::MinCutSegmentation)算法

  • Post author:
  • Post category:其他



背景知识:


最小割算法是图论中的一个概念,其作用是以某种方式,将两个点分开,当然这两个点中间可能是通过无数的点再相连的。


图一

在这里插入图片描述

此类方法把图像分割问题与图的最小割(min cut)问题相关联。首先用一个无向图G=<V,E>表示要分割的图像,V和E分别是顶点(vertex)和边(edge)的集合。

此处的Graph和普通的Graph稍有不同。

普通的图

分为有向图和无向图;由顶点和边构成,如果边的有方向的,这样的图被则称为有向图,否则为无向图,且边是有权值的,不同的边可以有不同的权值,分别代表不同的物理意义。



GraphCuts图



在普通图的基础上多了2个顶点

,这2个顶点分别用符号**”S”



”T”**表示,统称为终端顶点。其它所有的顶点都必须和这2个顶点相连形成边集合中的一部分。所以Graph Cuts中有两种顶点,也有两种边。

第一种顶点和边是:第一种普通顶点对应于图像中的每个像素。每两个邻域顶点(对应于图像中每两个邻域像素)的连接就是一条边。这种边也叫n-links。

第二种顶点和边是:除图像像素外,还有另外两个终端顶点,叫S(source:源点,取源头之意)和T(sink:汇点,取汇聚之意)。每个普通顶点和这2个终端顶点之间都有连接,组成第二种边。这种边也叫t-links。



参考文章


pcl中的最小图割:

pcl官方文档中把点云最小图割算法分成了三个步骤:

1、构造GraphCut图
在这里插入图片描述

意译:对于一个给出的点云,算法会以点云中每一个点,另加一个source(源点)、一个sink(汇点),作为GraphCut图的顶点;点云中每个点与其近邻连线所形成的边叫n-links,与sink、source连线形成的边叫t-links。

2、给每条边赋予权重

参考官方文档:
在这里插入图片描述

3、分割

*

问题一:

顶点和边有哪几种,怎么来的?



顶点:点云中的每个点、source(源点)、sink(汇点)

边: n-link、t-link

“怎么来的” 参考步骤1,清楚的很呐


source和sink是怎么来的?是什么?




图一

就是一个图像对应的s-t图,每个像素对应图中的一个相应顶点,另外还有 S 和 T 两个顶点。上图有两种边,实线的边表示每两个邻域普通顶点连接的边n-links,虚线的边表示每个普通顶点与s和t连接的边t-links。在前后景分割中,S一般表示前景目标,T一般表示背景。”

这个最小割把图的顶点划分为两个不相交的子集S和T,其中s

∈S,t∈ T和S∪T=V。这两个子集就对应于图像的前景像素集和背景像素集,那就相当于完成了图像分割。

——引用

第一个链接

中的描述

也就是说, S、T一开始是点,在后续的算法进行过程中,不断有新的点被归类为foreground、background的点加入到S、T中,形成了后来的前景像素集和背景像素集,对应点云分割中的

目标物体



背景



版权声明:本文为qq_44693088原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。