我已经使用 javacv LBPH 类在 Java 中实现了人脸识别,但是我遇到了 FaceRecognizer.LBPH 不支持更新功能的问题。这是错误:
“OpenCV 错误:功能/特征未实现(此人脸识别器(FaceRecognizer.LBPH)不支持更新,您必须使用人脸识别器::train 来更新它。)在未知函数中,文件......\src \opencv\modules\contrib\src\facerec.cpp,第 305 行"
我已经使用 javacv LBPH 类在 Java 中实现了人脸识别,但是我遇到了 FaceRecognizer.LBPH 不支持更新功能的问题。这是错误:
“OpenCV 错误:功能/特征未实现(此人脸识别器(FaceRecognizer.LBPH)不支持更新,您必须使用人脸识别器::train 来更新它。)在未知函数中,文件......\src \opencv\modules\contrib\src\facerec.cpp,第 305 行"
这就是问题所在。在 OpenCV 存储库的主干中,该方法是虚拟的,并被 LBPH FaceRecognizer 覆盖。所以它被C++中的后期绑定规则调用。这适用于 C++ 和所有包装器。但是问题来了:在 OpenCV 的 2.4 分支中,团队希望保证二进制兼容性,因此从方法签名中删除了virtual关键字。这会导致所有问题,因为不再调用覆盖的方法。我会修复它并相应地更新这篇文章。
这现在在 iOS 中对我有用(在以前的版本中没有调用更新)。我使用这些说明从最新的 repo 版本重建了框架:http: //docs.opencv.org/trunk/doc/tutorials/introduction/ios_install/ios_install.html
我有同样的问题。显然该功能未在 OpenCV 2.4.3 中实现,请参见:javacv