Python图像处理(11):k均值
2015-06-25 22:48
726 查看
快乐虾http://blog.csdn.net/lights_joy/欢迎转载,但请保留作者信息
K均值是一个经典的聚类算法,我们试试在python下使用它。首先以(-1.5, -1.5)和(1.5, 1.5)为中心点各生成10个点的随机坐标值,我们希望用K均值算法将它们正确的分类。
接下来kmeans出场。这个函数的python原型为:In [14]: help(cv2.kmeans)Help on built-in function kmeans: kmeans(...) kmeans(data, K,bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels,centers
在我们的脚本中调用它:
通过此函数我们得到了2个类别的中心点和每个点所属的类别。 最后按分类显示:
很好的一个结果:
K均值是一个经典的聚类算法,我们试试在python下使用它。首先以(-1.5, -1.5)和(1.5, 1.5)为中心点各生成10个点的随机坐标值,我们希望用K均值算法将它们正确的分类。
# 创建测试的数据点,2类 # 以(-1.5, -1.5)为中心 rand1 = np.ones((10,2)) * (-2) + np.random.rand(10, 2) print(rand1) # 以(1.5, 1.5)为中心 rand2 = np.ones((10,2)) + np.random.rand(10, 2) print(rand2) # 合并随机点 data = np.vstack((rand1, rand2))
接下来kmeans出场。这个函数的python原型为:In [14]: help(cv2.kmeans)Help on built-in function kmeans: kmeans(...) kmeans(data, K,bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels,centers
在我们的脚本中调用它:
# kmeans (ret, label, center) = cv2.kmeans(data, 2, None, (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_MAX_ITER, 10, 0.1), 10, cv2.KMEANS_RANDOM_CENTERS )
通过此函数我们得到了2个类别的中心点和每个点所属的类别。 最后按分类显示:
# 按label进行分类显示 idx = np.hstack((label, label)) for i in range(0, 2) : type_data = data[idx == i] type_data = np.reshape(type_data, (type_data.shape[0] / 2, 2)) plt.plot(type_data[:,0], type_data[:,1], 'o') plt.show()
很好的一个结果:
相关文章推荐
- python发送文本邮件
- Python20150624
- Python定义类方法
- Python访问限制
- Python初始化实例属性
- python 解析HTML
- python模拟登陆知乎和CSDN【urllib,re,requests】
- 用Python和Pygame写游戏-从入门到精通(21)
- 用Python和Pygame写游戏-从入门到精通(22)
- 用Python和Pygame写游戏-从入门到精通(20)
- 用Python和Pygame写游戏-从入门到精通(19)
- 用Python和Pygame写游戏-从入门到精通(17)
- 用Python和Pygame写游戏-从入门到精通(18)
- 用Python和Pygame写游戏-从入门到精通(15)
- 用Python和Pygame写游戏-从入门到精通(14)
- Python使用__future__
- 用Python和Pygame写游戏-从入门到精通(13)
- 用Python和Pygame写游戏-从入门到精通(11)
- Python动态导入模块
- 用Python和Pygame写游戏-从入门到精通(10)