python像素亮度聚类代码
时间: 2023-07-22 10:30:56 浏览: 105
以下是一个简单的基于K均值聚类算法的像素亮度聚类的Python代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from PIL import Image
# 加载图像
img = Image.open('image.jpg')
# 转换为灰度图像
img_gray = img.convert('L')
# 转换为NumPy数组
img_array = np.array(img_gray)
# 获取图像尺寸
rows, cols = img_array.shape
# 将图像像素展平为一维数组
pixels = img_array.reshape(rows * cols, 1)
# 定义聚类数量
num_clusters = 4
# 应用K均值聚类
kmeans = KMeans(n_clusters=num_clusters, random_state=0).fit(pixels)
# 获取聚类后的标签
labels = kmeans.labels_
# 重新构造图像
img_clustered = np.zeros_like(img_array)
for i in range(rows):
for j in range(cols):
img_clustered[i, j] = labels[i * cols + j] * 255 // (num_clusters - 1)
# 显示图像
plt.figure(figsize=(8, 8))
plt.imshow(img_clustered, cmap='gray')
plt.axis('off')
plt.show()
```
在这个示例中,我们首先加载了一张图像,并将其转换为灰度图像。然后,我们将图像像素展平为一维数组,并应用K均值聚类算法来将像素分为4个类别。最后,我们根据聚类标签重新构造图像,并显示聚类后的图像。
阅读全文