error: (-215:Assertion failed) s >= 0 in function ‘cv::setSize‘

模型训练时用测试图片报错:

cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\core\src\matrix.cpp:250: error: (-215:Assertion failed) s >= 0 in function 'cv::setSize'

错误部分如下:

def predict(test_img):
    #生成图像的副本,这样就能保留原始图像
    img = test_img.copy()
    #检测人脸
    face, rect = detect_face(img)
    print(rect)
    #预测人脸
    label = face_recognizer.predict(face)
    print(label)
    # 获取由人脸识别器返回的相应标签的名称
    label_text = subjects[label[0]]
 
    # 在检测到的脸部周围画一个矩形
    draw_rectangle(img, rect)
    # 标出预测的名字
    draw_text(img, label_text, rect[0], rect[1] - 5)
    #返回预测的图像
    return img

打印rect发现是none,得出原因是测试的这张图片没有露出全脸,导致无法检测到脸,换一张图片就可以啦,如果是视频的话动一动脸就行。解决!

你可能感兴趣的:(python,机器学习)