【发布时间】:2010-12-01 07:29:46
【问题描述】:
也许您已经注意到了,但 Google 图片搜索现在有一项功能,您可以按颜色缩小结果范围。有谁知道他们是怎么做到的?显然,他们已经对每张图片的信息进行了索引。
我很好奇分析图像颜色数据以实现简单颜色搜索的最佳方法。
感谢您的任何想法!
【问题讨论】:
也许您已经注意到了,但 Google 图片搜索现在有一项功能,您可以按颜色缩小结果范围。有谁知道他们是怎么做到的?显然,他们已经对每张图片的信息进行了索引。
我很好奇分析图像颜色数据以实现简单颜色搜索的最佳方法。
感谢您的任何想法!
【问题讨论】:
Google 功能提供 12 种颜色来匹配图像。所以我会计算每个样本的Lab 坐标,并在二维空间上绘制每种颜色的(a*, b*) 坐标。我会删除 L* 组件,因为应该忽略像素的亮度(亮度)。使用(a*, b*) 空间中的12 个点,我将使用Voronoi Diagram 计算分区。然后对于给定的图像,我会获取每个像素,计算其(a*, b*) 坐标。对图像中的每个像素执行此操作,从而在每个 Voronoi 分区中建立计数直方图。包含最高像素数的分区将被视为图像的“颜色”。
这将构成算法的基础,尽管会进行一些改进,以忽略在感知上不被视为图像主题一部分的黑白背景区域。
【讨论】:
L 是亮度或“亮度”值(不是b)。
平均颜色是一个很好的开始。只需使用双三次或双线性过滤器(或任何先进的东西)将您的图像缩小到原始尺寸的 10%。这将大大减少色彩噪声,并为您提供更接近人类感知图像的结果。 IE。纯粹由黄色和蓝色像素组成的像素栅格会变成干净的绿色。
如果你不模糊或缩小图像,你可能仍然会得到平均绿色,但偏差会很大。
【讨论】:
UIColor 返回。
所有像素的平均颜色?制作直方图并找到“n”个峰值的平均值?
【讨论】: