当前位置: 首页 > 面试题库 >

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

吕永寿
2023-03-14
问题内容

背景

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

挑战

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

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

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

灵感

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

  • http://www.pictaculous.com/
  • http://www.cssdrive.com/imagepalette/index.php
  • http://kuler.adobe.com/#create/fromanimage

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

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

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



 类似资料:
  • 我正在我的一个网站上实施reCAPTCHA,我已经成功地实施了它。它工作得很好。有时reCAPTCHA只能通过单击“我不是机器人”来完成,但有时它会显示图像网格来选择正确的图像并完成验证码。 我只是想知道这是否可能。我们是否可以禁用图像选择挑战,以便只需点击“我不是机器人”即可完成reCAPTCHA。谷歌展示图像网格的理论是什么? 我已经读过这个:防止reCaptcha多个图像选择,但那里没有足够

  • 本文向大家介绍w3c编程挑战_初级脚本算法实战篇,包括了w3c编程挑战_初级脚本算法实战篇的使用技巧和注意事项,需要的朋友参考一下 之前偶然看到了w3c上的编程挑战题,就像拿来试试手,先做的是初级脚本算法,总体不难,如果有更好的方法,希望能一起交流! 1、翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。 2、计算一个整数的阶乘 如果用字母n来代

  • 本文向大家介绍android中圆角图像生成方法,包括了android中圆角图像生成方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了android中圆角图像生成方法。分享给大家供大家参考。具体分析如下: 在android开发中为了美观,常常要求ImageView中显示出圆角图像的效果,这个如何实现? 这里总结了网上的最优方法:将图像处理成圆角,然后在加载给ImageView显示,代码如下

  • > 我可以从存储库下载图像,但希望看到生成它们的方法。 我喜欢保存快照的想法,但是一旦我完成了,最好有一个结构化的格式来检查所做的事情。

  • 我想从官方Dockerhub映像生成 在上尝试建议的方法后 我收到错误消息 因此,如何从上述图像生成Dockerfile。

  • 本文向大家介绍python matplotlib包图像配色方案分享,包括了python matplotlib包图像配色方案分享的使用技巧和注意事项,需要的朋友参考一下 可选的配色方案: Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_

  • 这是一个游戏,当用户点击左侧div的最后一个节点时,每次都会添加5个图像。 如果他点击其他节点,应该显示游戏结束警报。 问题: > 在调用Generateface函数生成新面孔集之前,我将如何删除右侧和左侧div的所有节点。 点击左边额外的笑脸

  • 我试图创建一个视频从jpeg图像使用ffmpeg。生成的视频应为x264或x265格式。 我有一个36张图片的目录。每个图像大小约为60像素。它们的名称如下: 第00000帧。jpg 框架00001。jps 框架00002。jpg 框架00035。jpg 我阅读了SO中的文档和几篇文章,并编写了一个批处理文件来调用ffmpeg,如下所示: 当我运行这个命令时,我从ffmpeg得到了这个输出,这很奇