【问题标题】:Using EM in opencv 2.4.2在 opencv 2.4.2 中使用 EM
【发布时间】:2013-04-03 19:59:18
【问题描述】:

我在寻求帮助。 由于 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);

最后一行得到 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 常量 &)" (?train@EM@cv@@UEAA_NAEBV_InputArray@2@AEBV_OutputArray@2@11@Z) 在函数“void __cdecl compute_LBPH_patterns_EM(struct 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 AND 错误 1 ​​错误 LNK2019:未解析的外部符号“公共: virtual __cdecl cv::EM::~EM(void)" (??1EM@cv@@UEAA@XZ) 函数“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 错误 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

非常感谢

【问题讨论】:

    标签: opencv


    【解决方案1】:

    尝试使用这个-

    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);
    

    【讨论】:

      【解决方案2】:

      给你

      #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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-11
        • 2012-08-20
        • 2012-07-12
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 2012-08-30
        • 1970-01-01
        相关资源
        最近更新 更多