資源簡介
基于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實現鳶尾花數據集降維
評論
共有 條評論