我阅读了有关OpenCV可用的K-Means群集的信息。该函数返回群集标签,群集中心和群集的整体紧凑性。
中心是X坐标。如何获取群集中心的Y坐标?
这就是我对对象进行群集的方法。
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
compactness,labels,centers = cv2.kmeans(np.float32(x_coord_list), 6, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
但是它将中心返回为:
[[646.8723 ]
[111.409096]
[803.1395 ]
[495.14545 ]
[235.57547 ]
[349.85315 ]]
如何获取Y坐标?
答案 0 :(得分:0)
显然,您正在仅使用数据点的x坐标调用cv2.kmeans
。
假设您还有一个列表y_coord_list
代表点的y坐标,则可以使用:
# Z contains both coordinates, one per row as specified by the documentation
Z = np.vstack((x_coord_list, y_coord_list))
# convert Z to np.float32
Z = np.float32(Z)
compactness,labels,centers = cv2.kmeans(Z, 6, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)