我正在使用OpenCV 3.0 beta。
我尝试使用createLBPHFaceRecognizer()创建一个面部识别器; class as,
**Ptr <FaceRecognizer> model = createLBPHFaceRecognizer();**
我遇到的错误是
**error: 'createLBPHFaceRecognizer' was not declared in this scope**
我研究过并发现该类存在于opencv2的contrib
模块中
(opencv2 / contrib / contrib.hpp)以前版本的OpenCV
但是这个模块在opencv 3.0 beta中不可用。 那么在opencv 3.0中定义的识别器类在哪里?
如果没有定义它们,除现有模块外,我们如何添加此模块?
答案 0 :(得分:9)
您必须下载并构建opencv_contrib repo。
运行cmake,make,make install,
#include <opencv2/face.hpp>
// note the additional namespace:
cv::Ptr <cv::face::FaceRecognizer> model = cv::face::createLBPHFaceRecognizer();
// proceed as usual
答案 1 :(得分:0)
来自https://github.com/opencv/opencv_contrib:
要运行,需要添加contrib模块的链接器标志,以便在代码/ IDE中使用它们。例如,要使用aruco模块,&#34; -lopencv_aruco&#34;将添加标志。
答案 2 :(得分:0)
在我的Debian安装中
$ dpkg -l libopencv-contrib-dev
ii libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64 development files for libopencv-contrib3.2
使我能够使用仅包含其他内容的贡献模块。例如:
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
auto model = cv::face::createLBPHFaceRecognizer();