OpenCV - 叶柄去除

OpenCV - Leaf Petiole Removal

我想知道如何解决我给定的问题:从叶子上去除叶柄,对叶子的影响很小 none。

根据研究,人们尝试使用像礼帽这样的形态学操作来增强和去除叶柄,但在某些情况下,这种方法效果不佳,还会从叶子中检测到额外的峰(如下例)。

我也会尝试基于 HSV 颜色的分割 space,但我会非常感谢 BGR 的想法 space。

从左到右(输入图像、找到的轮廓、应用了内核大小结构元素的形态学,这取决于每个叶种)

我在 C++ 中使用 OpenCV。

example problem petiole detection

如评论中所述,我很想亲自尝试一下。 这就是我得到的:

我用了distance transform,但是最后的解并没有显得那么完美。如果您愿意,我在 python 中有代码。

代码:

dist_transform = cv2.distanceTransform(thresh1,cv2.DIST_L2,5)
ret, stalk = cv2.threshold(dist_transform,0.095*dist_transform.max(),255,0)

stalk = np.uint8(stalk)
cv2.imshow('stalk_removed.jpg',stalk)

其中thresh1是叶子的二值图像。