当max()为空时追加空值

2024-06-16 11:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码根据轮廓的最大面积查找轮廓,但当找不到轮廓时,我想将0附加到列表中,以解决ValueError: max() arg is an empty sequence错误,但失败了。为什么呢

contours = cv2.findContours(binaryimage, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    if len(contours) == 2:
        contours = contours[0]
    else:
        contours = contours[1]
maxcontour = max(contours, key=cv2.contourArea)   #filter maximum contour based on contour area 
if len(maxcontour) == 0:
    areavalue.append(0)

maxarea = cv2.contourArea(maxcontour)
areavalue.append(maxarea)

编辑:添加default = 0后,我得到一个maxarea的错误

maxcontour = max(contours, key=cv2.contourArea, default = 0)   #filter maximum contour based on contour area 
maxarea = cv2.contourArea(maxcontour)
areavalue.append(maxarea)

Tags: keylenif错误filtercv2max轮廓