Я использую cvEm для моделирования гауссовой смеси в 2D-данных. После вызова функции поезда он возвращает True (подписывает успешное обучение), а также результаты классификации (имеющие разные кластеры разных цветов) кажутся разумными, но я получаю ошибку нарушения доступа при получении коразмерностей матриц кластеров!Нарушение доступа в CvEM :: функция getCovs
Ниже соответствующие строки кода:
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! :(
Я очень ценю вашу помощь. :)