按颜色/颜色范围浏览图像:需要示例和/或代码

时间:2009-04-23 00:14:33

标签: c# asp.net actionscript graphics colors

在很久以前的Flash会议上,我记得看过一个带有颜色选择器的Flash应用程序的演示。根据用户的颜色选择,应用程序会向用户显示该颜色近似范围内的一组图像:一组主要是红色图像,一堆主要是蓝色图像等。

我正在寻找两件事: 1)这种应用程序演示的链接,理想情况下是Flash应用程序 2)ActionScript或C#代码,描述如何选择一组颜色范围内的图像。

我知道如何从单个图像中提取聚合/平均RGB并将此信息保存到数据库中。我需要知道如何在一定的颜色容差范围内选择图像。这可以纯粹使用SQL和RGB颜色代码的字母数字分配知识来完成,还是有更好的方法?

3 个答案:

答案 0 :(得分:1)

我找不到任何示例代码,但发现article给出了对其进程的高级解释(从其他page有关Flickr的功能来搜索具有相似颜色的图像)。显然,Google还允许您使用图像搜索执行此操作(但我不知道这是来自元数据标记还是实际颜色匹配)。

现在回答实际问题:

您需要存储图像的“颜色签名”,而不是仅存储图像的平均颜色或聚合颜色。

我的第一个(有根据的猜测)想法会带来这些步骤:

  1. 从图像
  2. 生成每个色带的直方图
  3. 生成描述每条直方图曲线的一些因素(均值,方差,标准偏差等? - 这些因素将构成您图像的数字签名)
  4. 将这些因素存储在您的数据库中(并且每个因素都会在数据库中有一个索引)
  5. 然后,您将获取输入(颜色,颜色范围或源图像),针对该源运行直方图算法,并搜索与计算因子的匹配。

答案 1 :(得分:1)

我在评论中引用的Flickr Hacks解决方案是我发现的最佳解决方案:它涉及使用常用算法将图像大小调整为1x1像素,这为您提供了整个图像的平均颜色。聪明。

答案 2 :(得分:0)

您可以为每个图像使用一组描述符,然后匹配它们。

这里有一些很棒的工作......对于C#。

http://savvash.blogspot.com/p/compact-composite-descriptors.html

还可以查看免费的img(Rummager)工具..它可以做你想要的(即找到与颜色匹配的图像)。