# 使用K-means对图像进行聚类，显示分割标识的可视化
from load_data import load_data
import PIL.Image as image
from sklearn.cluster import KMeans

# 加载图像，得到规范化的结果img，以及图像尺寸
img, width, height = load_data('./weixin.jpg')
# 用K-Means对图像进行2聚类
kmeans = KMeans(n_clusters=2)
kmeans.fit(img)
label = kmeans.predict(img)
# 将图像聚类结果，转化成图像尺寸的矩阵
label = label.reshape([width, height])
# 创建个新图像pic_mark，用来保存图像聚类的结果，并设置不同的灰度值
pic_mark = image.new('L', (width, height))
for x in range(width):
    for y in range(height):
        # 根据类别设置图像灰度, 类别0 灰度值为255， 类别1 灰度值为127
        pic_mark.putpixel((x, y), int(256 / (label[x][y] + 1)) - 1)
pic_mark.save('weixin_mark.jpg', 'JPEG')

# 使用K-means对图像进行聚类，显示分割标识的可视化
from load_data import load_data
import PIL.Image as image
from sklearn.cluster import KMeans

# 加载图像，得到规范化的结果img，以及图像尺寸
img, width, height = load_data('./weixin.jpg')
# 用K-Means对图像进行2聚类
kmeans = KMeans(n_clusters=2)
kmeans.fit(img)
label = kmeans.predict(img)
# 将图像聚类结果，转化成图像尺寸的矩阵
label = label.reshape([width, height])
# 创建个新图像pic_mark，用来保存图像聚类的结果，并设置不同的灰度值
pic_mark = image.new('L', (width, height))
for x in range(width):
    for y in range(height):
        # 根据类别设置图像灰度, 类别0 灰度值为255， 类别1 灰度值为127
        pic_mark.putpixel((x, y), int(256 / (label[x][y] + 1)) - 1)
pic_mark.save('weixin_mark.jpg', 'JPEG')

# 使用K-means对图像进行聚类，显示分割标识的可视化 # 加载图像，得到规范化的结果img，以及图像尺寸 # 用K-Means对图像进行2聚类 # 将图像聚类结果，转化成图像尺寸的矩阵 # 创建个新图像pic_mark，用来保存图像聚类的结果，并设置不同的灰度值 # 根据类别设置图像灰度, 类别0 灰度值为255， 类别1 灰度值为127