图像处理15:GraphCut算法
(1)有向图、无向图相关概念:
①图的定义:
图在数据结构中是一对多的关系,一般分为无向图和有向图,常用邻近矩阵或邻接链表表示图中的节点关系。
图是由顶点集v和顶点间关系集合E(边)组成的数据结构,用二元组定义为G=(V,E)。
②有向图和无向图:
1)有向图:
用箭头标明边的方向性,一条边<x,y>与<y,x>表达的结果不相同,用尖括号表示。
2)无向图:
无箭头,(x,y)与(y,x)表达的结果相同,用圆括号表示。
③完全图、稠密图、稀疏图:
1)完全图:
1.完全有向图:具有n个顶点,n(n-1)条弧的有向图,为完全有向图;
2.完全无向图:具有n个顶点,n(n-1)/2条弧的无向图,为完全无向图。
2)稠密图、稀疏图:
对于一般无向图,顶点数为n,边数为e,0<=e<=n(n-1)/2;
对于一般有向图,顶点数为n,边数为e,0<=e<=n(n-1);
当一个图接近完全图时,称为稠密图;当一个图具有较少的边或弧时,称为稀疏图。
④度、出度、入度:
1) 度:在图中一个顶点依附的边或弧的数目;
2)出度:一个顶点依附的弧尾数目;
3)入度:一个顶点依附的弧头数目。
(2)最小割最大流算法:
①概述:
最小割最大流指在有向图中,能够从源头到达汇点的最大流量,等于如果从图中剪除就能够导致网络流中断的边的集合的最小容量和。
②最小割和最大流的关系:
1)最大流不可能大于最小割,因为最大流的所有水流都一定经过最小割的割边,水流不会比水管容量大;
2)最大流不可能小于最小割,因为水管容量应物尽其用;
3)因此最小割和最大流问题等价,在求解最小割时一般转换为最大流问题求解。
(3)GraphCut算法的流程:
首先,图由顶点和边组成,边有权值,我们需要构建一个图,图中有两类顶点,两类边和两类权值;
普通顶点由图像每个像素构成,每两相邻像素之间存在一条边,它的权值由边界平滑能量项决定;
两个特殊顶点:终端顶点s(目标)和t(背景),每个普通顶点都和s存在连接边,边的权值由区域能量项Rp(1)决定,每个普通顶点与t的边的权值由区域能量项Rp(0)决定;
图确定后可通过最小割算法找到最小的割,最小的割即为权值和最小的边的集合,这些边的断开恰好分割了目标和背景,也就是最小割相当于最大流相当于能量最小化。