当使用OpenCV的drawContours绘制轮廓时,边界是以轮廓为中心绘制的,我只想在轮廓的外部绘制边界。
下面的图片(取自SketchUp文档)最好地解释了这一点:

drawContours像在第一个圆中一样绘制轮廓(轮廓位于绘制的边界的中间)。我只需要在轮廓的外部有边界,就像在最后一个圆圈中一样。
有没有人知道我如何才能达到这种行为?
谢谢。
发布于 2015-11-19 19:08:41
使用下面的代码
_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只给出了外部检测到的轮廓。
发布于 2015-11-20 18:28:20
假设内部核心的颜色总是均匀的,并且您预先知道核心颜色的值,我们可以简单地这样做:
#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)https://stackoverflow.com/questions/33800557
复制相似问题