图像分割RGB图像的K均值聚类在python中

时间:2015-07-01 06:43:31

标签: python image k-means

我希望使用k均值聚类来分割用于土地覆盖的RGB图像(卫星图像),使得图像的不同区域由不同颜色标记,并且如果可能的话,创建分隔不同区域的边界。

是否有可能通过K-means聚类实现这一目标? 我一直在互联网上搜索,许多教程通过k表示聚类,但只有在将图像转换为灰度后才能进行。我想只用RGB图像来做。是否有任何可以帮助我开始的资源? 请提出建议。

2 个答案:

答案 0 :(得分:0)

他们将图像转换为灰度是什么意思?公式计算点与质心的欧几里德距离。因此使用R,G,B值。阅读此学生报告,了解使用不同颜色空间的比较 - RGB或HSV:http://www.cs.bgu.ac.il/~ben-shahar/Teaching/Computational-Vision/StudentProjects/ICBV121/ICBV-2012-1-OfirNijinsky-AvivPeled/report.pdf

答案 1 :(得分:0)

我想这与RachJain无关,但如果将来有人需要: sklearn KMean算法的简单使用将给出想要的结果:

from sklearn.cluster import KMeans
pic = np.float64(misc.imread(filepath)/255)
kmeans = KMeans(n_clusters=13, random_state=0).fit(pic)
pic2show = kmeans.cluster_centers_[kmeans.labels_]
plt.imshow(pic2show)