智能剪刀——交互式图像分割

Demo Video:

注:图片来自[2]

作者:@Mapupcal

前言:

智能剪刀算法(Intelligent Scissors)是由Eric N. Mortensen和William A. Barrett于1995年提出来的一种图像分割的交互算法,可以用于2D图像分割,论文见[1][2]。

该算法可以用于辅助用户精确地勾勒出感兴趣的区域。

其可以在运行时快速地定位到该图像区域的边缘上,通过与用户交互,更精确地完成整个感兴趣区域的勾画、分割。(如上图所示)


算法理论基础:

①将图像转换成一个庞大的加权有向图。

②在运行时,通过特定的寻路算法,在出发点[a]开始,寻找一条最优路径,该路径通往用户指定的目标点[b]。

[a] 论文中为种子点,SeedPoint,为了和论文相对应,以下均使用SeedPoint,下同。

[b] 论文中为自由点,FreePoint.

注:智能剪刀算法的核心在于①,论文[1][2]着重讨论了如何确定加权有向图的边权重。

注:关于②,论文也提供了相应的算法实现,论文当中的算法就是Dijkstra最短路径搜索算法的一种变种。

 

将图像变成一个庞大的加权有向图:

图像中每个像素,在加权有向图中都将成为该图中的一个结点Node。

相邻的像素,互相之间存在一条加权有向边。

确定每条加权有向边的权重。

注:在内存表示加权有向图的方式有很多,有每个节点基于顺序容器存放有向边的方式,也有基于矩阵的方式。在实现中,为了数据的局部性,本文采用了基于矩阵的方式去实现可提高性能。

 

对于某一个非边界像素p,其有八个邻居像素,如:



当转换成加权有向图之后,就变成如下这个样子:



你可能感兴趣的:(计算机视觉,图像分割,交互式,智能算法)