做网站的不给源文件,洛阳网络科技有限公司,校园互动网站建设,花都区建设工程造价管理网站K-Means聚类图像分割 图像分割#xff1a; 利用图像的灰度#xff0c;颜色#xff0c;纹理#xff0c;形状等特征#xff0c;把图像分成若干个互不重叠的区域#xff0c;并使这些特征在同一区域内呈现相似性#xff0c;在不同区域之间存在明显的差异性。然后#xff0c…K-Means聚类图像分割 图像分割 利用图像的灰度颜色纹理形状等特征把图像分成若干个互不重叠的区域并使这些特征在同一区域内呈现相似性在不同区域之间存在明显的差异性。然后就可以将分割的图像中具有独特性质的区域提取出来用于研究。常用方法 阈值分割对图像进行度量设置不同类别的阈值达到分割目的。 边缘分割对图像边缘进行检测即即检测图像中灰度值放生跳变的地方则为一片区域的边缘。 直方图法对图像的颜色建立直方图而直方图的波峰波谷能够表示一块区域的颜色的范围来达到分割目的。 特定理论基于聚类分析小波变换的理论完成图像分割。实例 目标利用KMeans聚类算法对图像像素颜色进行聚类实现分割。输出同一聚类中的点使用同一颜色标记不同聚类颜色不同。代码 import numpy as np
import PIL.Image as image
from sklearn.cluster import KMeansdef loadData(filePath):fopen(filePath,rb)data[]imgimage.open(f)m,nimg.size;print(m,n)for i in range(m):for j in range(n):x,y,zimg.getpixel((i,j))#print(z,y,z)data.append([x/256.0,y/256.0,z/256.0])f.close()return np.mat(data),m,nimgData,row,colloadData(E:\\python\small_split.jpg)
kmKMeans(n_clusters3)labelkm.fit_predict(imgData)
labellabel.reshape([row,col])picimage.new(L,(row,col))
for i in range(row):for j in range(col):pic.putpixel((i,j),int(256/(label[i][j]1)))
pic.save(splited.jpg,JPEG)实验分析通过设置k的值可以得到不同结果同时由于k的不确定也可能得不到预期结果。前为结果后面为原图