我想根据图像中的主要对象颜色或图像中最常用的颜色来了解图像搜索的方法。
是否有任何教程,甚至是购买它的产品?
我想编写一个搜索引擎使用此功能。
所以,任何人都可以帮助我
谢谢。答案 0 :(得分:3)
我做过类似的工作。我的实施可以在http://code.google.com/p/hppg/找到。可以在项目主页上找到实例。此搜索引擎还具有按关键字和颜色同时搜索的功能。所有详细信息和代码都可以在项目主页上找到。希望如此有用:))
答案 1 :(得分:2)
每种颜色都有一个RGB值,表示颜色中红色,绿色和蓝色的等级。您可以计算每个像素的所有RGB值的总和,然后除以像素数,以获得图像的“平均”颜色。
另一种方法是将颜色展平(将RGB值中的所有最后一位数字更改为0,例如#F8824A变为#F08040),然后找到图像中具有相同颜色的最大曲面。
想象一下白墙前的某人的照片 - 通过使用第一种方法,你会得到白色和人的衣服和脸部的混合物。使用第二种方法你会变白,除非人的衬衫的“颜色常数”区域大于墙壁的可见部分。
必须有其他想法,但这应该让你思考你想要什么。
答案 2 :(得分:2)
另一种选择是将图像转换为HSV space(色调,饱和度,值),并计算平均色调。如果平均色调落在特定范围内,则保留图像,否则丢弃它。 特定范围取决于您感兴趣的颜色。例如,对于绿色图像,您需要具有60到180度之间色调的任何颜色。请参见下面的HSV图表:
与RGB相比,在HSV中工作的好处是HSV更自然地与人类感知颜色的方式相关联。 RGB更适合在加色系统中显示信息,即计算机监视器。
根据您愿意花多少时间,您可能不一定要实施自己的搜索引擎。只需将您的查询提供给Google的图片搜索,抓取结果中的所有图片,然后使用上述方法(或其他一些标准,如上面建议的deltreme)过滤它们。我最近做了类似的事情,从Youtube上抓住海上海岸警卫队的视频(幸运的是,我想要的主要是蓝色)。
对于搜索部分,请查看Google's APIs。我没有使用过一个用于图片搜索,但是他们的Youtube API非常有帮助。