资源简介

基于Python3.7实现整图分割功能,调用sklearn模块的KMeans聚类算法。包括源程序、测试图片和结果图片。

资源截图

代码片段和文件信息

import numpy as np
import PIL.Image as image
from sklearn.cluster import KMeans

#加载图片并进行预处理
def loadData(filePath):
    f = open(filePath‘rb‘)
    data = []
    img = image.open(f)
    mn = img.size
    for i in range(m):
        for j in range(n):
            xyz = img.getpixel((ij))
            data.append([x/256.0y/256.0z/256.0])
    f.close()
    return np.mat(data)mn
 
imgDatarowcol = loadData(‘kmeans.jpg‘)

#加载Kmeans聚类算法
label = KMeans(n_clusters=4).fit_predict(imgData)

#聚类获得每个像素所属的类别
label = label.reshape([rowcol])
#创建一个新的灰度图保存聚类后结果
pic_new = image.new(“L“ (row col))
#根据所属类别向图中添加灰度值
for i in range(row):
    for j in range(col):
        pic_new.putpixel((ij) int(256/(label[i][j]+1)))
pic_new.save(“result-bull-4.jpg“ “JPEG“)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        908  2018-07-12 01:54  基于聚类的整图分割\demo.py

     文件     118793  2018-03-20 17:28  基于聚类的整图分割\kmeans.jpg

     文件      87593  2018-07-11 22:42  基于聚类的整图分割\result-bull-3.jpg

     文件      98115  2018-07-11 22:41  基于聚类的整图分割\result-bull-4.jpg

     文件     104964  2018-07-11 22:43  基于聚类的整图分割\result-bull-5.jpg

     目录          0  2018-07-12 01:37  基于聚类的整图分割

----------- ---------  ---------- -----  ----

               410373                    6


评论

共有 条评论