[英]OpenCV kmeans with CV_64F1
根据文档和我得到的错误:
OpenCV Error: Assertion failed (data.dims <= 2 && type == CV_32F && K > 0)
OpenCV的kmeans群集不支持CV_64F1类型的数组。 我有什么要忽略的吗?还是我必须手工实施kmeans?
(我在Linux上使用带有gcc 5.3.1的OpenCV 3.1.0 C ++ Intefaces;是的,我需要64位精度,正在做一些机器学习数据分析。)
编辑:再三考虑,将矩阵“降频”到32F值得尝试,因为我只需要k-均值聚类即可为NMF初始化因子。 也许结果仍然比随机初始化更好。 有没有办法转换OpenCV矩阵?
总结一下这个问题:
我只是将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的参数::垫CV_64FC1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.