0

LBPH アルゴリズムを使用して顔を検出および認識しようとしました。そのために、次の例を試しました。

OpenCV をマスターする 第 8 章 FaceRecognition

コードは実行され、EignefacesFisherfaces では正常に機能しますが、 LBPH アルゴリズムを認識すると例外が発生します。私はそれを理解することはできません。例外は次のとおりです。

OpenCV Error: Bad argument (no parameter 'eigenvectors' is found)  in unknown function, file "..\modules\core\src\algorithm.cpp" line 882.

882行目で、

CV_Error_( CV_StsBadArg, ("No parameter '%s' is found", parameter ? parameter : "<NULL>") );

上記の行は、例外を引き起こす次の行の後に呼び出されます

Mat eigenvectors = model->get<Mat>("eigenvectors");

それで、私は何を間違っていますか?専門家が来て、私を救ってください。ありがとう

4

2 に答える 2

0

Yout アルゴリズムをどのように定義しますか?

顔を検出したい場合は、次のようにモデルを定義する必要があります。

const char* recAlgorithmEigenfaces = "FaceRecognizer.Eigenfaces";
Ptr<FaceRecognizer> model;
model = Algorithm::create<FaceRecognizer>(recAlgorithmEigenfaces);

必要に応じて、モデルを確認する必要があります。

if (model.empty()) {
 /* throw exception */ 
}

そして、モデルをトレーニングします..

編集

ここで読む別の説明は、次のとおりです。

[..]顔認識アルゴリズムは 、OpenCV のcontribモジュールのFaceRecognizerクラスを通じて利用できます。動的リンクにより、プログラムが contrib モジュールにリンクされている可能性がありますが、runtinme で実際にはロードされません (必要ないと見なされた場合)。そのため、電話することをお勧めします

cv::initModule_contrib()

FaceRecognizer アルゴリズムにアクセスしようとする前に関数を使用してください。この関数は OpenCV v2.4.1 からのみ使用できるため、少なくともコンパイル時に顔認識アルゴリズムを使用できるようになります [..]

于 2013-12-17T14:11:20.027 に答える