假设我查询以下内容:
并且我得到了所有黑色天空的图像,那么背后的算法实际上是如何工作的呢?
假设我查询以下内容:
并且我得到了所有黑色天空的图像,那么背后的算法实际上是如何工作的呢?
图片只是由像素组成的。像素只是RGB值。我们知道在RGB中黑色是什么样子的,因此我们可以在图片中查找它。
好的,一种方法是:
给定一组图像,确定给定颜色范围的高浓度(这实际上相当简单),存储此数据,然后相应地进行索引(根据从前面步骤确定的颜色对图像进行索引)。现在,您基本上拥有了查找包含特定单词的文档的类似工具。
这只是一种可能方法的非常基本的描述。
从图像中提取颜色有多种方法,我认为其他答案已经解决了它们(K-Means、分布等)。
假设您已经提取了颜色,有几种方法可以通过颜色搜索。一种缓慢但显而易见的方法是使用某些度量(例如Color Difference)计算搜索颜色与图像的主要颜色之间的距离,然后根据“接近程度”加权结果。
另一种更快的方法是基本上降低颜色空间的分辨率。不要处理所有可能的RGB颜色值,而是将提取限制在较小的范围内,就像Google一样(只有蓝色、绿色、黑色、黄色等)。然后用户可以使用有限的一组颜色样本进行搜索,计算颜色距离变得微不足道。