【问题标题】:How to find the prominent color of an image?如何找到图像的突出颜色?
【发布时间】:2016-02-17 06:51:26
【问题描述】:

我尝试使用this 示例获取图像的突出颜色。这非常适合普通图像。但是当我给出这样的图像时,

它给了我颜色RGB(0,4,7)(黑色的)。我该如何解决这个问题?

【问题讨论】:

  • 看起来该示例试图过滤掉灰色...您的示例图像看起来只包含灰色。尝试删除灰色过滤器,或者尝试第二个最佳答案(ColorFinder:pieroxy.net/blog/pages/color-finder/index.html
  • 如何移除灰色滤镜?我评论了isGrey 条件。但还是有问题。
  • 我刚刚浏览了代码,一旦删除了 isGray 条件,它应该可以正常工作。它将通过直接匹配返回图像中最常见颜色的 RGB(它不会将相似的颜色组合在一起)。您确定返回的值不是最常见的精确 RGB 值吗?请查看stackoverflow.com/users/1207655/martin-wilson 对该问题的回答以获得很好的描述。
  • 您想要感知到的主要颜色吗?然后不要使用您拥有的代码。它只是计算最常出现的确切颜色。图像中有 182 倍的颜色 (0,4,7),而多种不同的去饱和蓝色则更少,例如170 倍于非常明亮的蓝色,100 倍于较暗的颜色。总而言之,他们可能会赢,但该代码不会这样做。通过将图像模糊或缩小到 1 个像素,然后获取该像素的颜色(这与将其变得如此模糊以至于您只能看到 1 种颜色基本相同),您将更接近感知到的颜色。
  • 谢谢,会试试这个。

标签: java image-processing rgb


【解决方案1】:

实际上,您不是在寻找主色,而是更多地寻找主色。因此,您正在寻找 RGB 直方图中更大的簇。看看 Arnaud LeTrotter 的论文(当时他在法国马赛的 LSIS 实验室工作),这正是他所做的。他为主要颜色检测添加了一些容差,以便拥有主要范围。

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    相关资源
    最近更新 更多