0

所以我正在做一个项目,它的许多部分之一包括识别图像中的面孔。我已经根据我的需要进行了大量研究,默认的正面 haarcascade 不能满足我的需要。然而,我发现了另一个在更合适的数据库(UMIST)上训练的 haarcascade。我想改用新的级联,但我收到了这个错误。

error: <class 'cv2.CascadeClassifier'> returned a result with an error set

我假设它是自定义的 haarcascade 只是不起作用。

我可能只是遗漏了一些非常明显的东西,或者我的自定义 haarcascde 不起作用。如果只是 haarcascde 不起作用,那么还有另一种方法可以使用另一个 haarcascade 吗?

注意:这里是带有 UMIST haarcascade 的 GitHub 链接,我也确实将 UMIST 级联移动到 cv2 级联数据文件夹中,所以这不是问题。

我确实突然想到 UMIST 数据可能已经过时而 Opencv2 不能使用它?我不确定,任何帮助都会很棒!

以下是项目源代码:

import cv2
import sys

targetImage = 1
ImagePath = 'image-9.jpg'


image = cv2.imread(ImagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)



faceCascade2 = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_profileface_umist_1.xml")
faces = faceCascade2.detectMultiScale(
    gray,
    scaleFactor=1.3,
    minNeighbors=3,
    minSize=(15, 15)
    )


print("Found {0} Faces".format(len(faces)))

for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

status = cv2.imwrite("Data/image-9-data.jpg", image)
print("saved",status)



4

0 回答 0