python图像分割kmeas代码
时间: 2023-07-23 20:17:28 浏览: 93
kmeas图像分割
以下是基于sklearn库的kmeans图像分割代码示例:
```python
import numpy as np
from sklearn.cluster import KMeans
from PIL import Image
# 加载原始图像
img = Image.open('example.jpg')
# 将图像转换为numpy数组
img_array = np.array(img)
# 获取图像宽度和高度
width, height = img.size
# 将图像数组重塑为一维数组
img_array_reshape = img_array.reshape(width * height, 3)
# 执行kmeans聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(img_array_reshape)
# 获取聚类标签
labels = kmeans.labels_
# 将标签重塑为图像形状
labels_reshape = labels.reshape(width, height)
# 创建新图像数组
new_img = np.zeros_like(img_array)
# 将每个像素赋值为其所属的聚类中心颜色
for i in range(width):
for j in range(height):
new_img[i, j, :] = kmeans.cluster_centers_[labels_reshape[i, j], :]
# 将新图像数组转换为图像
new_img = Image.fromarray(new_img.astype(np.uint8))
# 保存新图像
new_img.save('new_example.jpg')
```
在上面的代码中,我们首先使用PIL库加载原始图像,然后将其转换为numpy数组。我们将图像数组重塑为一维数组,然后使用KMeans算法执行聚类。我们将聚类标签重塑为图像形状,并使用聚类中心颜色为每个像素赋值。最后,我们将新图像数组转换为图像,并保存它。
阅读全文