在图像分割中,图割是一种非常重要的方法,由于是刚开始研究,可能在某些思路上并不准确,希望大家多包涵,并提出错误,谢谢。
在阅读文献《Interactive Graph Cuts for Optimal Boundary & Segementation of Objects in N-D Image》后,自己对图割图像分割有了一个大致的了解。但在大方向上,有两点一直困惑着我,①:文中提到了给图中的边设置权值,在对边t-links设置权值时,提到了一个强度直方图,这个直方图是怎么来的?个人认为直方图是根据交互式方法设定的硬约束给出的,但具体怎么得到的,还有待考证。②:最大流最小割是怎么用到图像分割中的?
例如上图,图中每条边有两个参数,框外的是边的容量,框内是边的流量。最大流最小割的功能是找到一个边的集合,该集合的边的容量和在最小的情况下可将图分为S(包含s和部分节点)和T(包含t和部分节点,且S和T的交集为空)两部分。
刚接触图割时,我总在想,最大流最小割中图的边有流量和容量两个参数,图像构造成图后,只有边的权值,怎么用到的最大流最小割呢?边的权值是流量还是容量?在看了这篇文章后,我觉得自己稍微明白点了。下面是里面的图,对最大流初学者很有帮助。
这是一个例题,图中的边只有一个权值,和图像构造的图是一样的。首先,在图中选取一条从s到t的路径,给出残留容量图。
这样就求出了最大流。换句话说,每条路径上的流取决于最小的残留容量或者容量。
最大流求出来了,但该割那些边呢?换句话说,割边集合是那些?是那些没有残留容量的边?把这些边加起来明显不对。之后阅读最大流最小割的定义,最大流最小割定理(max flow/min cut theory):对于任意一个只有一个源和一个汇的图来说,从源到汇的最大流等于最小割。看到这句话后,我好像想起点什么。将s、v1、v4与v2、v3、v5、t中间一刀隔开(这一刀可以将不含残留容量的边割断,不过v4-v1的边并没有隔断,这一点有疑问,在后续学习中会继续考虑),并将从S出发,到T的边的容量相加,正好为46。