2012-06-19 89 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个“平均颜色”图。