【问题标题】:Access Violation in CvEM::getCovs functionCvEM::getCovs 函数中的访问冲突
【发布时间】:2013-11-20 15:00:39
【问题描述】:

我正在使用 cvEm 对 2D 数据进行高斯混合建模。 调用 train 函数后,它返回 True(签署成功的训练)和分类结果(具有不同颜色的不同集群)似乎是合理的,但是在获取集群的协方差矩阵时出现访问冲突错误!

以下是相关代码行:

    CvEMParams params;
    params.covs      = NULL;
    params.means     = NULL;
    params.weights   = NULL;
    params.probs     = NULL;
    params.nclusters = NrGMMComponents;
    params.cov_mat_type       = CvEM::COV_MAT_GENERIC; // DIAGONAL, GENERIC, SPHERICAL
    params.start_step         = CvEM::START_AUTO_STEP;
    params.term_crit.max_iter = 300;
    params.term_crit.epsilon  = 0.001;
    params.term_crit.type     = CV_TERMCRIT_ITER|CV_TERMCRIT_EPS;
    //params.term_crit.type     = CV_TERMCRIT_ITER;

    // 2.2 Estimate GMM params for all <NrGMMComponents> Gaussian Mixture Components
    
    CvEM em_model;
    bool result = em_model.train( samples, Mat(), params, &labels);
    vector<cv::Mat> covs;
    em_model.getCovs(covs);  ////////////Access Violation here! :(

【问题讨论】:

    标签: c++ opencv gaussian expectation-maximization


    【解决方案1】:

    我在 CvEm 中找到了另一个名为 get_covs() 的成员函数,它起作用了! 但是我还是不知道getCov()这个函数出了什么问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      相关资源
      最近更新 更多