因为后面要学习Grab cuts,所以先将Graph Cuts的方法学习一下。
1. 由图像构建一个图。G=(V,E)
由上图可以看到图中分别有两种顶点和两种边。
第一种顶点:普通顶点,对应于图像中的每个像素;
第一种边:每两个邻域顶点(即图像中的邻域像素)的连接构成的边,称为“n-links”;
第二种顶点:两个终端顶点,s(source terminal)和t(sink terminal);
第二种边:每一个普通顶点和这两个终端顶点之间都有连接,构成的边,称为“t-links”。
2. 几个定义
cost:代价或者费用,即图中每条边的权值we。
cut(割):图中边集合E的一个子集,该cut(割)的cost(表示为|C|)就是边集C的所有边的权值的总和。
如果一个割,其包含的所有边的权值之和最小,那么这个割就称为最小割,也就是图割的结果。在图分割里,是要求两个终端顶点被分离开的,即最小割把图的顶点划分为两个不相交的子集S和T,其中s∈S,t∈T,T=V/S。事实上,这两个子集对应于图像的前景像素集和背景像素集,也就相当于完成了图像分割。
3. 图分割
寻找最优图像分割就是寻找最小化图割的过程,是通过最小化能量函数