根据我得到的文档和错误:
#pragma omp for
OpenCV的kmeans集群不支持CV_64F1类型的数组。我有什么东西可以忽略,还是我必须手工实施kmeans?
(我在Linux上使用OpenCV 3.1.0 C ++ Intefaces和gcc 5.3.1; 是的,我需要64位精度,我正在做一些机器学习数据分析。)
编辑:第二个想法,值得尝试将矩阵“向下”转换为32F,因为我只需要k-means聚类来初始化我的NMF因子。也许结果仍然比随机初始化更好。有没有办法转换OpenCV矩阵?
答案 0 :(得分:0)
结束这个问题:
我只是将Matrix从64F转换为32F:
cv::Mat a32f;
a.convertTo(a32f, CV_32FC1);
kmeans(a32f,k, labels,
cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::COUNT , 10, .0001),
5, cv::KMEANS_RANDOM_CENTERS);
a
是cv :: Mat CV_64FC1