opencv 贡献人脸库

Opencv contrib face library

我正在尝试在我的 python3.6 代码中使用 LBPHfacerecognizer。

recognizer = cv2.face.createLBPHFaceRecognizer()

我知道面部模块在 opencv_contrib 模块中。我什至卸载了 openCV 并再次安装了 contrib 模块。我用它编译了 OpenCV,python 仍然给出了一个错误:

AttributeError: module 'cv2.cv2' has no attribute 'face'

虽然在 opencv/build/lib 中我有 libopencv_face.dylib,但它不能用 python3 和 opencv 编译。

我尝试了所有我能想到的方法,但我 运行 没有想法。

有什么想法吗?

编辑:当我在 python3 环境下工作时,Python 不再报错,但当我尝试 运行 我的代码时,我仍然有同样的错误终端。

我正在尝试运行:

python3 main.py

知道我为什么会遇到这个问题或如何解决它吗?

首先,我的第一个错误是在做了几次cmake之后,我没有删除旧的cv2.so文件并用新的cv2.so替换它。

事实证明,为了工作 opencv_contrib 面部模块,我必须将这个新的 cv2.so 文件放在我的 main.py 存在的同一个文件中。我不知道这是否是首先应该采用的方式。这完全是我自己偶然发现的

在此之后,我的代码运行没有任何错误。

recognizer = cv2.createLBPHFaceRecognizer();

这对我来说是错误的 I tried out, just view the image here.

试试下面的代码,它可能会给你结果。

recognizer = cv2.face.LBPHFaceRecognizer_create();