Reputation: 93
I am using OpenCV 3.0 beta.
I tried to create a face recogniser using createLBPHFaceRecognizer(); class as,
**Ptr <FaceRecognizer> model = createLBPHFaceRecognizer();**
the error I have is
**error: 'createLBPHFaceRecognizer' was not declared in this scope**
I have researched and found that the class exists in contrib
module of opencv2
(opencv2/contrib/contrib.hpp) in previous versions of OpenCV
But this module is not available in opencv 3.0 beta. So where are the recogniser classes defined in opencv 3.0?
If they are not defined,how can we add this module in addition to the existing modules?
Upvotes: 9
Views: 21173
Reputation: 9114
On my Debian installation
$ dpkg -l libopencv-contrib-dev
ii libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64 development files for libopencv-contrib3.2
enables me to use contributed modules with just an additional include. For example:
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
auto model = cv::face::createLBPHFaceRecognizer();
Upvotes: 0
Reputation: 1
from https://github.com/opencv/opencv_contrib:
To run, linker flags to contrib modules will need to be added to use them in your code/IDE. For example to use the aruco module, "-lopencv_aruco" flag will be added.
Upvotes: 0
Reputation: 39796
you will have to download and build the opencv_contrib repo.
after running cmake, make, make install,
#include <opencv2/face.hpp>
// note the additional namespace:
cv::Ptr <cv::face::FaceRecognizer> model = cv::face::createLBPHFaceRecognizer();
// proceed as usual
Upvotes: 9