将边缘检测转换为蒙版

时间:2020-06-28 11:52:18

标签: python opencv computer-vision metal edge-detection

给我应用边缘检测滤镜的图像,要实现标记段中点的“和”的蒙版,将是什么方法(希望是高效/高效的)?

图片说明: enter image description here

谢谢。

更新:

添加了较亮图像(https://imgur.com/a/MN0t3pH)的示例。 如您在下图中所看到的,我们假设当用户标记一个区域(ROI)时,将会有一个对象从其背景中“突出”。我们的最终目标是获得该对象的最准确的“蒙版”,以便将其用于ML处理。

enter image description here

2 个答案:

答案 0 :(得分:2)

从您上传的两个示例中,我可以假设您是基于颜色/强度的差异进行阈值化的-我可以建议将grabcut作为基本的前景分离-在该ROI中使用蒙版中的边缘作为对算法。 甚至更好-如果您的阈值处理效果很好,只需跳过边缘检测部分,这将成为抓取的输入。

========编辑=======

@RoiMulia如果您需要生产水平,我建议您完全离开阈值+边缘检测方向,并尝试使用背景去除技术(SOTA当前是神经网络,例如Background Matting: The World is Your Green Screenexample)。

您还可以尝试使用一些现成的后台清除API,例如https://www.remove.bg/https://clippingmagic.com/

答案 1 :(得分:1)

1。
鉴于您拥有“ ROI”监督,我强烈建议您探索GrabCut(由YoniChechnik提出):
牧师C,柯尔莫哥洛夫V,布莱克A。"GrabCut" interactive foreground extraction using iterated graph cuts。图形上的ACM事务(TOG)。 2004。

要了解其工作原理,可以使用powerpoint的“背景消除”工具:
enter image description here
这是基于GrabCut算法的。

这是简报的外观:
enter image description here

GrabCut主要根据前景/背景颜色分布将前景对象分割为选定的ROI,而边缘/边界信息较少,尽管可以将这些额外信息集成到公式中。

opencv似乎具有GrabCut的基本实现,请参见here


2。
如果您正在寻找仅使用边界信息的方法,则可能会发现this answer有用。


3。
另一种方法是使用NCuts: Shi J,Malik J。Normalized cuts and image segmentation。关于模式分析和机器智能的IEEE Transactions 2000。

如果边缘地图非常可靠,则可以将NCuts使用的“亲和矩阵”修改为二进制矩阵

         0  if there is a boundary between i and j
w_ij =   1  if there is no boundary between i and j
         0  if i and j are not neighbors of each other

可以将NCuts视为估算“鲁棒连接组件”的一种方式。