【问题标题】:OpenCV From Canny edges to contoursOpenCV 从 Canny 边缘到轮廓
【发布时间】:2017-07-21 16:19:45
【问题描述】:

Canny 检测到我的边缘。 我想提取边缘的轮廓。

我已经检查了以下帖子。 OpenCV converting Canny edges to contours.

但它没有处理复杂的形状。例如,带矩形的圆或带直线的圆。

cv::findContours() 函数有 2 个问题。 1.为非闭合边缘返回闭合轮廓,但我想要非闭合轮廓 2.返回2个闭合边缘的闭合轮廓(也许其中一个轮廓用于边缘,另一个用于边缘内侧,但我想要两者之一。

有没有办法解决这个问题? 谢谢。

PS : 我已经上传了示例图片。

【问题讨论】:

  • 图片没有显示出您描述的问题。此外,您并没有真正解释“示例图像”显示的内容。如果您希望得到答案,则需要更具体。

标签: opencv image-processing


【解决方案1】:

这完全取决于您在寻找轮廓时选择的参数。

在 OpenCV 中,您可以使用

找到轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

画出来

cv2.drawContours(im, contours, -1, (0, 255, 0), -1) #---set the last parameter to -1

【讨论】:

  • 我希望这能回答你的问题
  • 我认为解决方案是使用connectedComponents
猜你喜欢
  • 2013-03-23
  • 2013-08-07
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 2021-06-13
  • 2013-04-02
相关资源
最近更新 更多