首页 > 代码库 > 使用kmeans对图片进行切割
使用kmeans对图片进行切割
源代码地址:https://github.com/wangqifan/PictureCutting
效果
切割前
切割后
接下来介绍如何写这个程序
首选导入工具包:
import numpy as np import PIL.Image as image from sklearn.cluster import KMeans
然后将图片数据加载到numpy数组中
def loadData(filepath): f=open(filepath,‘rb‘) data=[] img=image.open(f) m,n=img.size for i in range(m): for j in range(n): x,y,z = img.getpixel((i,j)) data.append([x/256.0,y/256.0,z/256.0]) f.close() return np.mat(data),m,n imgData,row,col=loadData("wqf.jpg")
对数据进行学习
label = KMeans(n_clusters=20).fit_predict(imgData)
对结果进行展示
label=label.reshape([row,col]) pic_new =image.new("L",(row,col)) for i in range(row): for j in range(col): print(label[i][j]) pic_new.putpixel((i,j),int(256/(label[i][j]+2))) pic_new.save("2.jpg","JPEG")
NOTE:kmeans需要制定簇,建议使用简单点的图片效果更明显
使用kmeans对图片进行切割
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。