在很久以前的Flash会议上,我记得看过一个带有颜色选择器的Flash应用程序的演示。根据用户的颜色选择,应用程序会向用户显示该颜色近似范围内的一组图像:一组主要是红色图像,一堆主要是蓝色图像等。
我正在寻找两件事: 1)这种应用程序演示的链接,理想情况下是Flash应用程序 2)ActionScript或C#代码,描述如何选择一组颜色范围内的图像。
我知道如何从单个图像中提取聚合/平均RGB并将此信息保存到数据库中。我需要知道如何在一定的颜色容差范围内选择图像。这可以纯粹使用SQL和RGB颜色代码的字母数字分配知识来完成,还是有更好的方法?
答案 0 :(得分:1)
我找不到任何示例代码,但发现article给出了对其进程的高级解释(从其他page有关Flickr的功能来搜索具有相似颜色的图像)。显然,Google还允许您使用图像搜索执行此操作(但我不知道这是来自元数据标记还是实际颜色匹配)。
现在回答实际问题:
您需要存储图像的“颜色签名”,而不是仅存储图像的平均颜色或聚合颜色。
我的第一个(有根据的猜测)想法会带来这些步骤:
然后,您将获取输入(颜色,颜色范围或源图像),针对该源运行直方图算法,并搜索与计算因子的匹配。
答案 1 :(得分:1)
我在评论中引用的Flickr Hacks解决方案是我发现的最佳解决方案:它涉及使用常用算法将图像大小调整为1x1像素,这为您提供了整个图像的平均颜色。聪明。
答案 2 :(得分:0)
您可以为每个图像使用一组描述符,然后匹配它们。
这里有一些很棒的工作......对于C#。
http://savvash.blogspot.com/p/compact-composite-descriptors.html
还可以查看免费的img(Rummager)工具..它可以做你想要的(即找到与颜色匹配的图像)。