diff --git a/modules/ml/src/em.cpp b/modules/ml/src/em.cpp index 807f9d233c..39b58e0d49 100644 --- a/modules/ml/src/em.cpp +++ b/modules/ml/src/em.cpp @@ -386,7 +386,8 @@ void EM::computeLogWeightDivDet() for(int clusterIndex = 0; clusterIndex < nclusters; clusterIndex++) { double logDetCov = 0.; - for(int di = 0; di < covsEigenValues[clusterIndex].cols; di++) + const int evalCount = covsEigenValues[clusterIndex].total(); + for(int di = 0; di < evalCount; di++) logDetCov += std::log(covsEigenValues[clusterIndex].at(covMatType != EM::COV_MAT_SPHERICAL ? di : 0)); logWeightDivDet.at(clusterIndex) = logWeights.at(clusterIndex) - 0.5 * logDetCov;