0

我想从 BufferedImage (Java) 中提取颜色直方图。我不想为红色、绿色和蓝色提取单独的直方图,但我想要一个包含所有可用颜色(包括分箱)的直方图。如果相邻的垃圾箱看起来彼此相似,那就太好了。

我不知道如何定义垃圾箱,因为颜色不是一维的。另一个问题是将颜色分配给它的 bin。

有人有想法或图书馆来实现它吗?

最好的,迈克尔

4

2 回答 2

1

您可以分别计算红色、绿色和蓝色的直方图,然后找到它们的平均值并绘制结果图。看看这篇文章

或者您可以创建一个立方体 3d 直方图(每个边缘对应一种颜色)。这是它的结果(java)。

于 2012-06-19T15:15:39.283 回答
0

只是一个想法:打开一些图像编辑器(例如 Paint)并查看他们的颜色选择器以了解如何排列颜色。

我想我会按 HUE 排列它们(在此处输入链接描述),因为这将是一种一维排列,很容易与“颜色箱”的概念相匹配,并且它还将相似的颜色以彩虹的方式彼此靠近。但是,仅使用色调(放弃亮度和饱和度)意味着您可能会将图片中看起来非常不同的颜色放在同一个 bin 中。

另一种方法是通过对完整 RGB 信息(例如使用所有 3 个 RGB 分量)使用某种静态聚类分析,将图片中的所有颜色自动“聚类”到固定数量的 bin(例如 16 个)中,然后显示在相应的直方图条下方显示每个集群的 16 个“平均颜色”。

于 2012-06-19T15:15:58.000 回答