轮廓元组的长度必须为 2 或 3,否则 OpenCV 会再次更改其 cv2.findContours return 签名 - 在特定区域查找轮廓

Contours tuple must have length 2 or 3, otherwise OpenCV changed their cv2.findContours return signature yet again- find contour in a specific area

cnts,_ = cv2.findContours(cv.rectangle(img3.copy(), (0,200) , (5000, 1150), (255,0,0), 2) ,cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(rgb_img, cnts, -1, (0,255,0), 2)


conts = imutils.grab_contours(cnts)
c = max(conts, key=cv2.contourArea)

我试图找到图像之间两个不规则边缘的轮廓。否则图像的矩形实际边缘被检测为轮廓最大区域。所以我想到了使用一个矩形区域,我希望它能够准确地检测到边缘。

您使用的 imutils.grab_contours 错误。

如果您自己使用 (cnts, *_) = cv.findContours(...) 进行解构,那么 您根本不需要 imutils

如果你想使用 imutils,你需要将 cv.findContours 返回的整个元组(2 元组或 3 元组)传递给它,如下所示:cnts = imutils.grab_contours(cv.findContours(...))