OpenCV3.0ベータ版を使用しています。
CreateLBPHFaceRecognizer();を使用して顔認識機能を作成しようとしました。クラスとして、
**Ptr <FaceRecognizer> model = createLBPHFaceRecognizer();**
私が持っているエラーは
**error: 'createLBPHFaceRecognizer' was not declared in this scope**
調査したところ、以前のバージョンのOpenCVのopencv2のcontrib
モジュール(opencv2/contrib/contrib.hpp)にクラスが存在することがわかりました。
ただし、このモジュールはopencv3.0ベータ版では使用できません。では、opencv 3.0で定義されているレコグナイザークラスはどこにありますか?
それらが定義されていない場合、既存のモジュールに加えてこのモジュールを追加するにはどうすればよいですか?
opencv_contrib リポジトリをダウンロードしてビルドする必要があります。
cmakeを実行した後、make、make install、
#include <opencv2/face.hpp>
// note the additional namespace:
cv::Ptr <cv::face::FaceRecognizer> model = cv::face::createLBPHFaceRecognizer();
// proceed as usual
私の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();
から https://github.com/opencv/opencv_contrib :
実行するには、contribモジュールへのリンカーフラグを追加して、コード/ IDEで使用する必要があります。たとえば、arucoモジュールを使用するには、「-lopencv_aruco」フラグが追加されます。