我正在使用OpenCV的Python接口对多维数据(通常是7维)进行K-Means聚类。我发现聚类结果有些奇怪。当请求n个聚类(索引从0到n)时,有些聚类没有分配到点,这导致聚类数少于预期。是否有人成功地使用过OpenCV的Python K-Means实现?一些用户经验或建议将非常有帮助。
下面是我的Python代码片段:
下面是我的Python代码片段:
points = cv.CreateMat(dim1, dim2, cv.CV_32FC2)
clusters = cv.CreateMat(dim1, 1, cv.CV_32SC1)
for a in range(0,dim0):
for b in range(0,dim1):
for c in range(0,dim2):
#print float(list[a*dim1*dim2 + b*dim2 + c])
cv.Set2D( points, b, c, float(list[a*dim1*dim2 + b*dim2 + c]) )
cv.KMeans2(points, numClusters, clusters, (cv.CV_TERMCRIT_EPS + cv.CV_TERMCRIT_ITER, 100000, 0.00000001), 50)
for d in range(0,dim1):
f.write(str(int(clusters[d,0])))
f.write(' ')
f.write('\n')
问候,
斯特凡