OpenCV - 仅保留 python 中标记的斑点

OpenCV - Retaining only marked blobs in python

我有一个形态学问题,我正在尝试使用 OpenCV 解决。我有两张图片。

  1. 面具
  2. 种子

在蒙版图像中,我试图仅保留种子图像标记的斑点并移除其余部分。

下面我贴的是蒙版和种子图

蒙版图片:

种子图片:

为了进一步说明问题,我放大了图像并创建了一个子图。

在这个例子中,你右边的图是种子图像,你左边的图是蒙版图像。在操作结束时,我希望在左侧有象鼻形状的斑点作为结果,因为它由种子坐标(左)标记。

按位操作只会给我种子和掩码之间的重叠区域(结果是相同的方形斑点)。 一种可能的解决方案是通过重建使用打开,但是 OpenCV 没有它的实现。

OpenCV - Is there an implementation of marker based reconstruction in opencv

不胜感激!

好的,谢谢大家花时间查看此 post。我无法在 OpenCV 中找到针对此特定问题的解决方案。因此我求助于使用 PYMORPH 库。

https://pythonhosted.org/pymorph/

函数 Inf-reconstruction 完全符合我的要求。

pymorph.infrec(f, g, Bc={3x3 交叉})

infrec 通过以 g 为条件的 Bc 对 f 进行无限次的递归迭代(迭代直到稳定)来创建图像 y。我们说 y 是来自标记 f 的 g 的 inf-reconstruction。算法和应用见Vinc:93b.

参数:
f:标记图像(灰色或二进制)。 g :调节图像(灰色或二进制)。 Bc :连通性结构元素(默认值:3x3 交叉)。 Returns :
y : 图片

希望这能帮助其他人克服类似的障碍。

谢谢