【问题标题】:OpenCV - obtaining smooth part of oblong shape after thresholdingOpenCV - 在阈值化后获得椭圆形的平滑部分
【发布时间】:2018-09-17 03:53:53
【问题描述】:

我正在对图像进行阈值处理,我得到了这个结果:image after thresholding

现在我只想实现最大椭圆形的轮廓: oblong shape.

使用 OpenCV 实现它的最佳方法是什么?我知道这个形状有一些分支。有没有可能摆脱它们?

【问题讨论】:

  • 如果您的“长方形”总是比分支明显厚 - 只需放大图像直到它们“脱落”,然后找到最大的轮廓。

标签: opencv image-processing opencv-contour image-thresholding


【解决方案1】:

我建议您反转阈值图像,使轮廓为白色,背景为黑色(cv2.threshold(cv2.THRESH_BINARY_INV))。然后使用cv2.findContours() 搜索轮廓。要选择您想要的轮廓,您可以制作一些过滤器以从您希望找到的轮廓中消除其他轮廓。您可以在 For 循环 (for i in contours:) 中使用过滤器,并为过滤器使用一些条件语句。对于过滤器,您可以尝试轮廓的大小(size = cv2.contourArea(i))或高度和宽度(x, y, w, h = cv2.boundingRect(i))。然后你可以做出像if size > 100 and h > 100 and w < 50: cv2.drawContours()这样的陈述。希望它能给你一个关于如何进行的想法。干杯!

【讨论】:

  • 或者你可以检查哪个轮廓最大。
猜你喜欢
  • 2020-05-07
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2017-05-04
相关资源
最近更新 更多