OpenCV从Canny边缘到轮廓

时间:2017-03-02 04:38:20

标签: opencv image-processing

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

我查了以下帖子。 OpenCV converting Canny edges to contours

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

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

有什么方法可以解决这个问题吗? 感谢。

PS:我上传了样本图片。

Sample Image.

1 个答案:

答案 0 :(得分: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

enter image description here