opencv c++ kmeans 和 matlab kmeans 的不同结果

Posted

技术标签:

【中文标题】opencv c++ kmeans 和 matlab kmeans 的不同结果【英文标题】:Different results for opencv c++ kmeans and matlab kmeans 【发布时间】:2018-07-02 07:03:50 【问题描述】:

MATLAB K-means 可以为图像提供准确的结果,而使用 OpenCV c++ 的 k-means 不会给出相同的结果,即使参数相同。实现上有区别吗?

【问题讨论】:

【参考方案1】:

Matlab的kmeans function默认使用kmeans++,在cv::kmeans可以通过KMEANS_PP_CENTERS标志激活kmeans++。

【讨论】:

【参考方案2】:

Wikipedia says 该方法随机 从数据集中选择 k 观测值并将其用作初始手段。结果可能取决于初始集群

这就是为什么即使在 OpenCV 方法执行中结果也可能不同的原因,尤其是对于 Matlab

【讨论】:

以上是关于opencv c++ kmeans 和 matlab kmeans 的不同结果的主要内容,如果未能解决你的问题,请参考以下文章

将 OpenCV cv::kmeans() 与一维输入一起使用

如何在opencv中访问特定的kmeans集群

opencv:如何使用kmeans()按角度聚类

OpenCV中KMeans算法介绍与应用

OpenCV 在图像上运行 kmeans 算法

opencv kmeans 聚类的输入矩阵