一尘不染

算法挑战:从图像生成配色方案

algorithm

背景

因此,我正在研究Web应用程序的新版本。而且,我们发现我们的用户痴迷于懒惰。真的很懒。实际上,我们为他们做的工作越多,他们对服务的热爱就越多。现有应用程序的一部分要求用户选择要使用的配色方案。但是,我们有一张图片(用户网站的屏幕截图),那么为什么我们不能仅仅满足他们的懒惰并为他们做呢?答:我们可以,这将是一个有趣的编程练习!:)

挑战

给定图像,如何创建相应的配色方案?
换句话说,如何选择图像中的主要X色(其中X由网络应用定义)。在我们特定情况下使用的图像是用户网站的屏幕截图,以全分辨率(例如1280x1024)拍摄。(
注意: 请简单描述您的算法-无需发布实际的伪代码。)

奖励积分(街道信誉积分,不是实际的SO积分):

  • 描述一种简单但有效的算法。代码是我们创建代码的方式-使其保持简单美观。
  • 允许用户根据各种“心情”(例如“色彩鲜艳”,“明亮”,“静音”,“深色”等)调整配色方案(a la Kuler
  • 描述一种可靠地确定网站屏幕截图中使用的主要 文本 颜色的方法(可能需要使用自己的单独算法)。

灵感

现有几个执行类似功能的站点。随时检查一下并问自己:“我将如何重复此操作?我该如何改进它?”


阅读 346

收藏
2020-07-28

共1个答案

一尘不染

  1. 要查找主要的X颜色,请对该应用进行屏幕截图。在图像上运行颜色直方图。直方图中的前X个颜色是主题。编辑:如果使用渐变,您将要选择不同的颜色“峰值”;也就是说,如果橙色是渐变中使用的主要颜色之一,则可能在“橙色”附近有一大堆颜色。实际上,只需在从直方图选择的颜色之间强制一定距离即可。

  2. 最好在HSV空间中调整颜色方案。将您的颜色转换为HSV空间,如果用户希望它更“亮”,请增加“值”,如果用户希望它更“丰富多彩”,请增加“饱和度”等。

  3. 确定文本颜色最好通过表征高可变性区域(傅立叶空间中的高频)来完成。在这些区域中,您应该具有以下两种颜色之一:文本和背景两种颜色,在这种情况下,文本是使用较少的颜色;否则您将有几种颜色,文本和背景图像颜色,在这种情况下,文本颜色是最常见的颜色。

2020-07-28