0

助けを求めています。EM クラスが原因でプロジェクトをビルドできません。私はopencv 2.4.2を使用しています

問題がどこにあるのかわかりません。誰かがアドバイスできますか?

cv::TermCriteria Termination;
Termination.type=CV_TERMCRIT_ITER;
Termination.maxCount=num_numIter;
cv::EM model=cv::EM(NClusters,cv::EM::COV_MAT_SPHERICAL,Termination);
model.train(groupped_one_person_features);

最後の行に get LINK ERR があります。クラス EM のオブジェクトを作成する方法がわかりません。NClusters は int ですが、他に何が問題なのですか?

利用した:#include "opencv2/ml/ml.hpp"

このコードにより、次のエラーが発生します。

2 エラー LNK2019: 未解決の外部シンボル "public: virtual bool __cdecl cv::EM::train(class cv::_InputArray const &,class cv::_OutputArray const &,class cv::_OutputArray const &,class cv::_OutputArray const &)" (?train@EM@cv@@UEAA_NAEBV_InputArray@2@AEBV_OutputArray@2@11@Z) 関数で参照される "void __cdecl compute_LBPH_patterns_EM(struct ArrayData *,struct Pattern *,int,int)" (?compute_LBPH_patterns_EM@ @YAXPEAUArrayData@@PEAUPattern@@HH@Z) D:\Work\EBIS2012CPlusPlus\Imet_v1.0_x64\Imet_v1.0_x64\compute_patterns.obj AND エラー 1 エラー LNK2019: 未解決の外部シンボル "public: virtual __cdecl cv::EM::~関数「void __cdecl compute_LBPH_patterns_EM(struct ArrayData *,struct Pattern *,int,int)」で参照される EM(void)" (??1EM@cv@@UEAA@XZ)(?compute_LBPH_patterns_EM@@YAXPEAUArrayData@@PEAUPattern@@HH@Z) D:\Work\EBIS2012CPlusPlus\Imet_v1.0_x64\Imet_v1.0_x64\compute_patterns.obj AND エラー 3 エラー LNK2019: 未解決の外部シンボル "パブリック: __cdecl cv::EM ::EM(int,int,class cv::TermCriteria const &)" (??0EM@cv@@QEAA@HHAEBVTermCriteria@1@@Z) 関数で参照される "void __cdecl compute_LBPH_patterns_EM(struct ArrayData *,struct Pattern *, int,int)" (?compute_LBPH_patterns_EM@@YAXPEAUArrayData@@PEAUPattern@@HH@Z) D:\Work\EBIS2012CPlusPlus\Imet_v1.0_x64\Imet_v1.0_x64\compute_patterns.obj(??0EM@cv@@QEAA@HHAEBVTermCriteria@1@@Z) 関数「void __cdecl compute_LBPH_patterns_EM(struct ArrayData *,struct Pattern *,int,int)」で参照 (?compute_LBPH_patterns_EM@@YAXPEAUArrayData@@PEAUPattern@@HH @Z) D:\Work\EBIS2012CPlusPlus\Imet_v1.0_x64\Imet_v1.0_x64\compute_patterns.obj(??0EM@cv@@QEAA@HHAEBVTermCriteria@1@@Z) 関数「void __cdecl compute_LBPH_patterns_EM(struct ArrayData *,struct Pattern *,int,int)」で参照 (?compute_LBPH_patterns_EM@@YAXPEAUArrayData@@PEAUPattern@@HH @Z) D:\Work\EBIS2012CPlusPlus\Imet_v1.0_x64\Imet_v1.0_x64\compute_patterns.obj

どうもありがとう

4

2 に答える 2

0

どうぞ

#include <opencv2\opencv.hpp>

using namespace cv;             //use the opencv namespace

EM em_model;                    //EM model

int main()
{
    //get samples
    Mat samples;

    //define and crate ternmination critaria
    int type     = TermCriteria::COUNT + TermCriteria::EPS;     
    int maxCount = EM::DEFAULT_MAX_ITERS;
    TermCriteria termCritaria = TermCriteria(type, maxCount, FLT_EPSILON);

    //define EM parameters and instantiate model
    int nclusters      =  EM::DEFAULT_NCLUSTERS;
    int covMatrix_type =  EM::COV_MAT_DEFAULT;
    em_model = EM(nclusters, covMatrix_type, termCritaria);

    //train EM model
    em_model.train(samples);


    return 0;
}
于 2014-12-16T03:07:00.217 に答える