import cv2
import numpy as np
from matplotlib import pyplot as plt
# 只有一个特征,只由人们的身高决定T恤大小
x = np.random.randint(25, 100, 25) # 生成25-100之间的25个随机数
y = np.random.randint(175, 255, 25)
z = np.hstack((x, y)) # 在水平方向堆叠数据,50个数据
z = z.reshape((50, 1)) # 转变为50行,1列的数据,变成列向量
z = np.float32(z) # 转换数据类型
# 使用Kmeans函数
# 设置变量
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
flags = cv2.KMEANS_RANDOM_CENTERS
# 返回紧密度,标志,中心
compactness, labels, centers = cv2.kmeans(z, 2, None, criteria, 10, flags)
A = z[labels == 0]
B = z[labels == 1]
plt.hist(A, 256, [0, 256], color='r')
plt.hist(B, 256, [0, 256], color='b')
plt.hist(centers, 32, [0, 256], color='y')
plt.show()
Python opencv 机器学习 6. KMeans k值聚类 一个特征
最新推荐文章于 2022-07-24 10:48:04 发布