2009-09-25 61 views
2

也许你已经注意到了,但Google图片搜索现在有一个功能,可以按颜色缩小搜索结果。有谁知道他们是如何做到这一点的?显然,他们已经为每个图像编制了索引信息。按颜色组织图片

我很好奇什么是分析图像的颜色数据,以允许简单的颜色搜索的最佳方法。

感谢您的任何和所有想法!

回答

3

平均颜色是一个很好的开始。只需使用Bicubic或Bilinear滤镜(或其他先进技术)将图像缩小至原始大小的10%即可。这将大大降低色彩噪点,并为您提供更接近人类感知图像的结果。即纯粹由黄色和蓝色像素组成的像素栅格将变成干净的绿色。

如果您不模糊或缩小图像,您可能仍会以平均绿色结束,但偏差会很大。

+0

然后,我会获取缩小图像的平均颜色,并将其用于索引目的? – 2009-09-25 14:32:54

+0

您可以缩小缩小图像的颜色。 – 2009-09-25 16:14:11

+0

@JoelVerhagen参见[这个答案](http://stackoverflow.com/questions/12147779/how-do-i-release-a-cgimageref-in-ios/12148136#12148136)类似的方法。它缩小到1x1像素,并将结果作为“UIColor”返回。 – 2012-08-28 12:05:15

0

所有像素的平均颜色?做一个直方图并找出'n'峰值的平均值?

1

Google功能提供12种颜色来匹配图像。所以我会计算这些色板中的每一个的Lab坐标,并在二维空间上绘制这些颜色中的每一种的(a*, b*)坐标。我会放弃L*组件,因为像素的亮度(亮度)应该被忽略。使用(a*, b*)空间中的12个点,我会使用Voronoi Diagram来计算分区。然后对于一个给定的图像,我会采取每个像素,计算其坐标(a*, b*)。对图像中的每个像素执行此操作,并在每个Voronoi分区中构建计数的直方图。包含最高像素数的分区将被视为图像的“颜色”。

这将形成算法的基础,虽然会有与忽略感知上不被认为是图像主题的一部分的黑色和白色背景区域相关的改进。

+0

你能详细说说这个技术吗? – Suyash 2012-07-23 09:43:57

+0

请注意,“L”是亮度或“亮度”值(而不是“b”)。 – Arel 2014-08-27 23:56:13