繁体   English   中英

使用CV_64F1的OpenCV kmeans

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM