首页 > 解决方案 > 我在 python 中遇到 OpenCV 错误...我的代码如下所示?请尽快解决。提前致谢

问题描述

请解决这些问题,当我运行此代码时,它给了我一个不可接受的错误 =“”OpenCV 错误:调整大小时断言失败(ssize.width > 0 && ssize.height > 0),文件 /build/opencv-L2vuMj/ opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp,第 3492 行""

代码:

import numpy as np
import dlib
import cv2
import face_recognition
import os

path = 'images'
image = []
classNames = []
myList = os.listdir(path)


for cl in myList:
    curImg = cv2.imread(f'{path}/{cl}')
    image.append(curImg)
    classNames.append(os.path.splitext(cl)[0])
    # print(classNames)



def findEncodings(image):
    encodeList = []
    for img in image:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
        return encodeList



encodeListKnown = findEncodings(image)
print(len("Encoding Complete"))



cap = cv2.VideoCapture()
# print(cap)



while True:
    success, img = cap.read()
    imgS = cv2.resize(img, (0,0), None, 0.25, 0.25)
    imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)

    facesCurFrames = face_recognition.face_locations(imgS)
    encodesCurFrames = face_recognition.face_encodings(imgS, 
    facesCurFrames)

    for encodeFace,faceLoc in zip(encodesCurFrames, 
    facesCurFrames):
        matches = 
    face_recognition.compare_faces(encodeListKnown,encodeFace)
        faceDis = 
    face_recognition.face_distance(encodeListKnown,encodeFace)

    print(faceDis)

标签: pythonopencvface-recognition

解决方案


(0, 0)不是(width, height)调整图像大小的有效元组。看起来您想通过缩放来调整图像大小,在这种情况下,您可以传递None而不是大小元组:

imgS = cv2.resize(img, None, fx=0.25, fy=0.25)

将在两个维度上将图像缩放 0.25。


推荐阅读