绘制轮廓错误 我正在尝试为图像中的对象绘制轮廓
(_, contours) = cv2.findContours(binary, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
# draw contours over original image
length = len(contours)
for c in range(length):
cv2.drawContours(img,contours,c,(255,0,0),3)
cv2.namedWindow("output", cv2.WINDOW_NORMAL)
cv2.imshow("output", img)
cv2.waitKey(0)
我希望绘制所有轮廓,但是我得到的实际结果是 错误:
(-215:断言失败)函数'drawContours'中的npoints> 0
答案 0 :(得分:1)
轮廓应为numpy数组。 将您的代码更改为:
for c in contours:
cv2.drawContours(img,[c], 0, (255,0,0),3)
答案 1 :(得分:0)
由于cv2.findContours()
无法找到任何轮廓,您遇到了该错误。确保OpenCV能够使用防护装置找到至少一个轮廓。另外,您输入的cv2.drawContours()
参数不正确
(_, contours) = cv2.findContours(binary, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
# draw contours over original image
length = len(contours)
if length > 0:
cv2.drawContours(img,contours,-1,(255,0,0),3)
cv2.namedWindow("output", cv2.WINDOW_NORMAL)
cv2.imshow("output", img)
cv2.waitKey(0)
答案 2 :(得分:0)
您有轮廓,层次向后。请参阅findContours()
上的OpenCv文档contours, hierarchy = cv2.findContours(binary,2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)