使用 OpenCV 绘制轮廓时drawContours
,边框以轮廓为中心绘制,我只想在轮廓外侧绘制边框。
drawContours
像在第一个圆圈中一样绘制轮廓(轮廓在绘制边框的中间)。我只需要在轮廓外侧设置边框,就像在最后一个圆圈中一样。
任何人都知道如何实现这种行为?
谢谢。
使用 OpenCV 绘制轮廓时drawContours
,边框以轮廓为中心绘制,我只想在轮廓外侧绘制边框。
drawContours
像在第一个圆圈中一样绘制轮廓(轮廓在绘制边框的中间)。我只需要在轮廓外侧设置边框,就像在最后一个圆圈中一样。
任何人都知道如何实现这种行为?
谢谢。
使用代码作为
_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 只给出外部检测到的轮廓。
假设内芯的颜色始终是同质的,并且您事先知道芯颜色的值,我们可以简单地这样做:
#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)