我试图在我的python3.6代码中使用LBPHfacerecognizer。
recognizer = cv2.face.createLBPHFaceRecognizer()
我知道face模块在opencv_contrib模块中。我甚至卸载了openCV并再次使用contrib模块安装。我用它编译了OpenCV,python仍然给出了一个错误:
AttributeError:模块'cv2.cv2'没有属性'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();