Python OpenCV仅在外边框上绘制轮廓

时间:2015-11-19 09:58:33

标签: python opencv opencv-drawcontour

使用OpenCV drawContours绘制轮廓时,边框以轮廓为中心绘制,我只想在轮廓的外侧绘制边框。

此图片(取自SketchUp文档)最佳解释: enter image description here

drawContours绘制轮廓,就像在第一个圆圈中一样(轮廓位于绘制边框的中间)。我需要只在轮廓的外侧有边框,就像在最后一个圆圈中一样。

任何人都知道如何才能实现这种行为?

感谢。

2 个答案:

答案 0 :(得分:1)

将代码用作

  _ret, contours, hierarchy = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 
  cv2.drawContours(img,contours , -1, (255,0,0), 1)

这里cv2.RETR_EXTERNAL仅给出外部检测到的轮廓。

答案 1 :(得分:1)

假设内核的颜色总是均匀的,并且您事先知道核心颜色的值,我们可以简单地这样做:

#First you draw the contour on both the sides of the border.
contour_id = 0
border_thickness = 10
border_color = (185, 115, 72)
cv2.drawContours(img, contours, contour_id, border_color, border_thickness)

#Now you again draw contour but with thickness = -1 and color = Core color
border_thickness = -1
core_color = (225, 141, 98)
cv2.drawContours(img, contours, contour_id, core_color, border_thickness)