OpenCV 4.0.0 SystemError: <class 'cv2.CascadeClassifier'> 返回了带有错误集的结果

新手上路,请多包涵

你好,我正在尝试创建一个面部识别程序,但我有一个特殊的错误:这是我的代码:

 import cv2 as cv
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
face_cascade = cv.CascadeClassifier("lbpcascade_frontalface.xml")
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5);

这个错误是输出

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

我在工作目录中有“lbpcascade_frontalface.xml”,所以这应该不是问题

如果我进入时有帮助

cv.__version__

我得到

'4.0.0'

原文由 Tyler Strouth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

新答案 OpenCV 现在似乎有一个专用于级联的目录,它们位于 data 我现在在教程中看到类似这样的东西 haar_cascade_face = cv.CascadeClassifier('data/haarcascade/haarcascade_frontalface_default.xml') 你可能必须找到在哪里 data 在你的机器上或上面我的工作。自从我在 2019 年初完成这个项目以来,我就没有碰过它。请记住,如果你想将 Haar 的 Cascade 用于眼睛,那它只适用于正面,这是一个单独的文件。

旧答案 原来我不需要下载另一个文件并使用它,因为 opencv 附带了这段代码

cv.CascadeClassifier(cv.data.haarcascades + "haarcascade_frontalface_default.xml")

原文由 Tyler Strouth 发布,翻译遵循 CC BY-SA 4.0 许可协议

好吧,我遇到了同样的问题,因为@TylerStrouth 提到这段代码片段不起作用:

 cv.CascadeClassifier(cv.data.haarcascades + "haarcascade_frontalface_default.xml")

因为如果您刚刚以 pip install opencv-pythonsudo apt-get install python3-opencv 的标准格式安装 opencv ,则数据目录中没有 haarcascades 文件

你会得到一个类似于 这个 stackoverflow 问题 的错误,其中提到的解决方案对我有用,也就是说,如果你使用的是 python3,那么你还需要在运行上面的代码片段之前安装 opencv-contrib-python

 pip install opencv-contrib-python

它有完整的包(包含 主要模块和贡献/额外模块

原文由 Arnav Das 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题