【问题标题】:OpenCV - Leaf Petiole Removal [closed]OpenCV - 叶柄去除[关闭]
【发布时间】:2017-07-04 06:19:09
【问题描述】:

我想知道如何解决我给定的问题:从叶子上去除叶柄,对叶子几乎没有影响。

从研究中,人们尝试使用顶帽等形态学操作来增强和去除叶柄,但在某些情况下效果不佳,还检测到来自叶子的峰(下面的示例)。

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

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

我正在将 OpenCV 与 C++ 一起使用。

example problem petiole detection

【问题讨论】:

  • 尝试距离变换.....它可能会提供一些见解
  • 感谢您的建议和编辑提示:D

标签: c++ opencv image-processing computer-vision image-segmentation


【解决方案1】:

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

我使用了距离变换,但最终的解决方案看起来并不那么完美。如果你愿意,我有 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 是叶子的二值图像。

【讨论】:

  • Python 也不错!
  • 我找到了一些其他的方法,但是这个给我想法很酷;所以对我来说没关系。
  • 很高兴我能帮上忙。顺便问一下,您发现的其他方法是什么?我有兴趣知道.....
  • 自己实现了一个函数,基于行分析和消除特定坐标;没有使用 OpenCV 函数;目前,它仅在叶柄位于图像底部且叶子垂直方向时才有效
  • 酷。一旦您得出一个强大的解决方案,请务必进行更新。 :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-27
  • 2021-11-17
  • 2018-05-24
  • 2012-10-28
  • 2014-08-23
  • 2013-02-24
相关资源
最近更新 更多