2012-06-19 91 views
0

我想從BufferedImage(Java)中提取顏色直方圖。我不想爲紅色,綠色和藍色提取單獨的直方圖,但我希望有一個直方圖包含所有可用顏色(包括分箱)。如果相鄰的垃圾箱看起來相似,那就太好了。Java顏色直方圖所有顏色不是RGB分離

我沒有一個想法如何定義垃圾箱,因爲顏色不是一維的。另一個問題是將顏色分配給它的垃圾箱。

有人有想法或圖書館來實現它嗎?

最佳, 邁克爾

回答

1

可以分別計算出直方圖紅色,綠色和藍色,然後發現他們的平均值,得出的結果grapic。看看this article

或者您可以創建立方體3d直方圖(每條邊對一種顏色作出響應)。這是它的result(java)。

+0

立方體3d直方圖與切片在小的子立方體帶來了一個足夠的解決方案。謝謝 :) – Michael

0

只是一個想法: 打開一些圖像編輯器(如油漆),並看看他們的顏色選擇器瞭解如何排列顏色。

我想我會安排他們由HUE(enter link description here),因爲它將是一個一維的安排,很容易地匹配「色箱」的想法,它也使彩虹方式相似的顏色彼此靠近。然而,僅使用Hue(丟棄亮度和飽和度)意味着您可能會將顏色看起來與圖片在同一個文件夾中看起來非常不同。

另一種方法是通過在完整的RGB信息上使用某種靜態cluster analysis(例如,使用全部3個RGB分量),將圖片中的所有顏色自動「聚類」爲固定數量的分檔(例如16),以及然後在對應的柱狀圖欄下方顯示每個簇的16個「平均顏色」圖。