分水岭和抓斗的比较

信息处理 图像处理 计算机视觉 opencv 图像分割
2022-01-29 19:55:30

我知道分水岭和抓取算法都是图像分割的常用工具。它们似乎都依赖于预定义的标记来形成类似于源-汇系统的东西,然后使用图像的梯度来找到边界。

我观察到的最大区别是,grabcut 使用了一种图形结构,其中梯度转换为边缘权重,而分水岭直观地通过向梯度图像缓慢添加水来工作。但对我来说,他们似乎会产生类似的结果?

我的问题是这两种算法之间的相对优势和劣势是什么?我什么时候应该使用一个而不是另一个?

2个回答

基于分水岭的分割通常会导致过度分割,并且对局部图像噪声非常敏感(例如,参见此处的讨论)。通常,通过使用大小(面积/地形/体积)阈值来修剪/合并流域。

我对 GrabCut 没有太多直接的经验,主要是从阅读论文中知道的。但是我可以说它是一种比分水岭(即最近开发的)更“现代”的方法。因为它基于全局优化(通过图形切割),所以与分水岭相比,它对局部图像噪声不太敏感。

备查,

在 opencv 的具体情况和我所经历的情况下,

Grabcut 仅将前景与背景分开(即仅支持 2 个标签),而分水岭支持使用多个标签进行分割

Grabcut 比 watershed 慢得多,我没有硬性统计数据,但 watershed 能够近乎实时地处理图像,grabcut 需要大约 5 秒来处理