OpenCV-Python实战(番外篇)——利用 K-Means 聚类进行色彩量化
前言
K-Means
聚类算法的目标是将 n
个样本划分(聚类)为 K
个簇,在博文《OpenCV与机器学习的碰撞》中,我们已经学习利用 OpenCV
提供了 cv2.kmeans()
函数实现 K-Means
聚类算法,该算法通过找到簇的中心并将输入样本分组到簇周围,同时通过简单的示例了解了 K-Means
算法的用法。在本文中,我们将学习如何利用 K-Means
聚类进行色彩量化,以减少图像中颜色数量。
利用 K-Means 聚类进行色彩量化
色彩量化问题可以定义为减少图像中颜色数量的过程。色彩量化对于某些设备显示图像非常关键,这些设备可能由于内存限制等原因只能显示有限颜色,因此,在这些设备上显示色彩通常需要在准确性和减少颜色数量之间进行权衡,在利用 K-Means
聚类进行色彩量化时,权衡两者是通过正确设置 K
参数来进行的。
利用 K-Means
聚类算法来执行色彩量化,簇中心数据由 3 个特征组成,它们对应于图像每个像素的 B、G 和 R 值。因此,关键是将图像转换为数据:
data = np.