日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

聚类图像像素 Clustering Pixels Using K-Means

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 聚类图像像素 Clustering Pixels Using K-Means 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在K-Means Using Python中,給出了一個用K-Means聚類的tutorial,這次將K-Means用在具體圖像像素聚類中,需要說明的是除了在很簡單的圖像上,單純在像素值上應用K-Means給出的結果是毫無意義的。要產生有意義的結果,需要更多復雜的類模型或空間一致性而不是平均像素色彩。這里,我們僅僅在RGB三通道像素值上運用K-Means,關于圖像分割問題會在后面的學習過程中將給出一些筆記與示例。

這里,我們對兩幅簡單的圖像利用K-Means進行像素聚類。下面代碼先載入圖像,然后用一個 100×100 的窗口在圖像中滑動,在RGB三通道上,分別求窗口所在位置中窗口包含像素值的平均值作為特征,對這些特征利用K-Means進行聚類,然后對向量量化,關于向量量化的解釋及理解,可以參與[1,2],下面是完整的對一幅簡單的圖像利用K-Means進行像素聚類的完整code:

"""Function: Illustrate Clustering Pixels Using K-Means Date: 2013-11-01""" from scipy.cluster.vq import * from scipy.misc import imresize from pylab import * import Image steps = 100 # image is divided in steps*steps region infile = 'D:\NutStore\Project\Translation\PCV\pcv_data\data\empire.jpg' im = array(Image.open(infile)) dx = im.shape[0] / steps dy = im.shape[1] / steps # compute color features for each region features = [] for x in range(steps):for y in range(steps):R = mean(im[x * dx:(x + 1) * dx, y * dy:(y + 1) * dy, 0])G = mean(im[x * dx:(x + 1) * dx, y * dy:(y + 1) * dy, 1])B = mean(im[x * dx:(x + 1) * dx, y * dy:(y + 1) * dy, 2])features.append([R, G, B]) features = array(features, 'f') # make into array # cluster centroids, variance = kmeans(features, 3) code, distance = vq(features, centroids) # create image with cluster labels codeim = code.reshape(steps, steps) codeim = imresize(codeim, im.shape[:2], 'nearest') figure() ax1 = subplot(121) ax1.set_title('Image') axis('off') imshow(im) ax2 = subplot(122) ax2.set_title('Image after clustering') axis('off') imshow(codeim) show()

上面兩層for循環實現的就是窗口滑動時,窗口中三通道像素的平均值,并將求得的三個通道上的平均值作為feature,后面的過程就是K-Means Using Python中詳解的內容,這里不再贅述。下面是像素聚類結果:再次需要強調的是利用像素聚類的方法只能對一些簡單的圖像進行分割,對于復雜點的圖像,我們可以采用圖割的方法,后面會對這方面進行一些分析。

參考:

[1]?http://www.data-compression.com/vq.shtml

[2]?http://blog.csdn.net/zouxy09/article/details/9153255


from:?http://yongyuan.name/blog/clustering-pixels-using-kmeans.html

總結

以上是生活随笔為你收集整理的聚类图像像素 Clustering Pixels Using K-Means的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。