前段时间在学校做了一个图像分割的算法,这里采用的是Max Flow算法进行的分割,这是一个验证性的算法。下面来介绍一下他的流程:
1、首先是虚拟源点和汇点,然后利用鼠标来选择源点区域和汇点区域。
2、构造图像网络,这里采用的4邻域法构造网络,构成一个无向网络图。
3、源点和上面源点区域中的点相连,且权值初始化为无穷,汇点一样。
4、采用基于树广度遍历实现最大流分割。
5、当增广路径不存在的时候,在进行一次网络的广度遍历,将遍历的点像素值置为0,显示新图像。具体的实现如下:
Graph Cut
1、图像网络才用的是十字链表的方式构建的,节点构建的顺序是先左右,后上下。构建图像网络,虚拟一个源点和一个汇点,将鼠标左键滚动的点与源点相连,右键滚动的点与汇点相连,和源点汇点的相连是单向的,其它都是双向的。图像网络中的点采用的是四邻域结构。垂直方向的每个节点后面跟着的是和它相连的其他节点,垂直方向的节点权值为NVL,和它相邻的点保存的都是到该点与前驱点之间的权值。