资源简介
基于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
- 上一篇:KMeans++算法实现图像分割
- 下一篇:基于PCA实现鸢尾花数据集降维
评论
共有 条评论