img = cv2.imread(r'G:\picture\2.jpg')
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret , thresh = cv2.threshold(imgray,127,255,0)
im2,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cnt=contours[0]
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
zstp('img',img)
首先,我们这个外界矩形出现在边框是一个很正常的情况,我们可以通过限制面积来进行抑制,其次我们的电池没有被框选,说明可能是你的轮廓没有找好,也有可能是你没有循环你找到的轮廓位置