在opencv

时间:2019-03-05 04:51:08

标签: algorithm opencv image-processing computer-vision image-segmentation

我想在opencv中实现多级窄带图剪切。多级带状图切割包括三个步骤:粗化,初始分割和不粗化。粗化直接在图像上完成。这可以使用任何标准的多分辨率图像技术来完成。可以使用的简单过程的一个示例是下采样。原始映像不被视为此步骤的内存消耗开销的一部分。所有这些步骤均如图

所示

multi

在第一阶段,基于原始图像I0构造了几个较小的图像{I_1,I_2,...,I_k},使得满足以下条件:尺寸约束M(k)

第二阶段是最粗图像I_k的分割,其中k是此实例问题中定义的最大级别。为I_k定义了曲线G_k =(V_k,E_k),并获得了它们的最小割线。此最小切割会产生图像I_k的分割。

在最后一步中,构建了一个二进制边界图像J_k,表示所有由剪切C_k的节点标识的所有这些图像元素,k∈{1,2,...,k}。边界图像被投影到级别k-1的高分辨率边界图像J(k-1)上。所得边界图像J(k-1)包含一个窄带,该带限制了要从中提取的对象元素的候选边界I(k-1)。可以通过可选的膨胀参数d> 0来控制带宽。如果d小,则该方法可能无法恢复形状复杂度高或曲率大的对象的全部细节。此外,如果d大,带状图切割的计算优势将降低,并且较宽的带也可能会引入离理想对象边界较远的潜在异常值。

我陷入了对最后一步的了解。我是否需要为graphcut提供带有额外带状像素的分段图像?如果是这样,如何在opencv中实现呢?假设我想基于代码here实现多级窄带GrabCut。如果某个地方已经实现了多级窄带图剪切代码,那么您可以参考一下吗?

0 个答案:

没有答案