2013-04-03 3 views
0

Я прошу помощи. Я не могу построить свой проект из-за класса EM. Я использую opencv 2.4.2Использование 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 is int, что еще может быть неправильным?

Я использовал: #include "opencv2/ml/ml.hpp"

Это приводит код в этих ошибках:

2 ошибки LNK2019: неразрешенный внешний символ «общественность: виртуальный BOOL __cdecl резюме :: EM :: поезд (класс резюме :: _ InputArray Const &, класс резюме :: _ OutputArray Const &, класс резюме :: _ OutputArray Const &, класс резюме :: _ OutputArray Const &)» (? железно @ EM @ резюме @@ UEAA_NAEBV_InputArray @ 2 @ AEBV_OutputArray @ 2 @ 11 @Z) ссылки в функции "недействительным __cdecl compute_LBPH_patterns_EM (структура ArrayData *, структура шаблон *, Int, Int)" (compute_LBPH_patterns_EM @@ YAXPEAUArrayData @@ PEAUPattern @@ HH @ Z) D: \ Work \ EBIS2012CPlusPlus \ Imet_v1 .0_x64 \ Imet_v1.0_x64 \ compute_patterns.obj И ошибка 1 ошибка LNK2019: неразрешенный внешний символ "public: virtual __cdecl cv :: EM :: ~ EM (void)" (?? 1EM @ cv @@ UEAA @ XZ) ссылка в функции "недействительным __cdecl compute_LBPH_patterns_EM (структура ArrayData *, структура шаблон *, Int, Int)" (? compute_LBPH_patterns_EM @@ YAXPEAUArrayData @@ PEAUPattern @@ HH @ Z) D: \ Work \ EBIS2012CPlusPlus \ Imet_v1.0_x64 \ Imet_v1 .0_x64 \ compute_patterns.obj И ошибка ошибки 3 LNK2019: неразрешенный внешний символ "public: __cdecl cv :: EM :: EM (int, int, cl ass 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

Спасибо большое

ответ

1

попробовать использовать this-

using namespace cv; 
EM em_model; 
const TermCriteria term_crit = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 
                  100, FLT_EPSILON); 
em_model = EM(clustercount, EM::COV_MAT_DIAGONAL, term_crit); 
em_model.train(samples, loghood, labels, probs); 
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; 
} 
Смежные вопросы