量化投資學習筆記29——《Python機器學習應用》課程筆記03

聚類的實際應用,圖像分割。
利用圖像的特徵將圖像分割爲多個不相重疊的區域。
常用的方法有閾值分割,邊緣分割,直方圖法,特定理論(基於聚類,小波分析等)。
實例:利用k-means聚類算法對圖像像素點顏色進行聚類以分割圖像。
輸出:同一聚類的點以相同顏色表示,不同聚類的像素點以不同的顏色表示。
用PIL庫從圖片中讀取像素點的顏色,轉化到[0,1]的範圍內。
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()
用K-Means算法對像素點顏色數據進行聚類。
imgData, row, col = loadData("test.jpg")
km = KMeans(n_clusters = 3)
label = km.fit_predict(imgData)
label = label.reshape([row, col])
label數據是一維的,轉換成與圖像相同的形狀。
最後輸出結果到圖片,結果如下:
原圖

處理後的圖片

本文代碼:
https://github.com/zwdnet/MyQuant/blob/master/27

我發文章的四個地方,歡迎大家在朋友圈等地方分享,歡迎點“在看”。
我的個人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的博客園博客地址: https://www.cnblogs.com/zwdnet/
我的微信個人訂閱號:趙瑜敏的口腔醫學學習園地

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章