在上一篇(【Machine Learning】K-means算法及优化)中,我们介绍了K-means算法的基本原理及其优化的方向。opencv中也提供了K-means算法的接口,这里主要介绍一下如何在python+opencv的环境下,使用k-means接口(C++的接口形式相似)。
python版本的k-means算法接口,即cv2.kmeans()。
输入参数:
-samples: 类型必须是np.float32型,每个特征应该放置在单独的一个列中;
-nclusters(K):最终要确定的类别数;
-criteria:迭代终止的条件,3通道参数,分别是(type, max_iter, epsilon):
- 3.a -type: 终止条件的类型,有如下3个flag: cv2.TERM_CRITERIA_EPS(精度满足epsilon时,终止迭代);cv2.TERM_CRITERIA_MAX_ITER(最大迭代次数达到后终止);cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER(二者满足其一即可终止迭代);<