关于plt.scatter参数c=和cv2.kmeans返回lables

最近发现一个问题,不知道是plt.scatter接口升级还是cv2.kmeans接口升级,以至于使用cv2.kmeans返回的结果bestLables在plt.scatter中c=使用时会出现参数错的现象发现,cv2.kmeans返回的是二维数组,plt.scatter中c=需要的是一维数组,所以需要转化一下

compactness, labels, centers = cv2.kmeans(X.astype(np.float32), 2,
                                              None, criteria, 10, flags)
plt.scatter(X[:, 0], X[:, 1], c=labels.flatten(), s=100, cmap='viridis')
    

这里labels.flatten()是把二维转一维的操作。
否则会有这个错误

ValueError: 'c' argument has 200 elements, which is not acceptable for use with 'x' with size 200, 'y' with size 200.

转载于:https://www.jianshu.com/p/261105c50a8d

猜你喜欢

转载自blog.csdn.net/weixin_33726313/article/details/91343667
今日推荐