获得图像的主色调

时间:2012-12-30 13:44:20

标签: javascript image colors hue

我正在开发一个太空壁纸分享图库。我已经使用JavaScript库颜色窃贼来检索图像的主要颜色,但我有一个问题。大多数壁纸是黑暗的。如果在搜索壁纸时,用户选择像#07F这样的蓝色,他将不会得到具有这种颜色的许多黑色壁纸,因为这些壁纸的主色将接近黑色。

我可以允许使用多种主色搜索(例如黑色和蓝色),但这会使搜索更复杂。

是否有任何JavaScript库(必须在客户端完成)才能获得图像的主要色调?如果没有,你对我如何实现算法有任何了解吗?

感谢阅读:)

1 个答案:

答案 0 :(得分:1)

这比Javascript更像是一个设计问题。显性颜色并不总是覆盖最多像素的颜色。这是吸引你眼球的颜色。例如,如果你在黑色背景上向某人展示粉红色星系的图片,则主色不是黑色,而是粉红色,因为主要主体是粉红色。所以你需要一个比这更复杂的算法。

此外,黑色和白色在技术上不是颜色。它们仅分别完全没有光或极端高光(或光源)。所以我会排除比预定阈值更暗或更亮的任何东西(例如,排除计算中的顶部和底部5%)。

编辑:

我自己可能会尝试将最饱和像素的颜色设置为高于某个阈值(例如,大于X像素数,以避免由于噪声引起的误报),并具有误差范围。

EDIT2:

您可以更改L155以测试像素的饱和度和暗度。您可能希望获得一个为此目的进行RGB-> HSB转换的库,但我不知道是否有一个好的。