2010-11-18 94 views
1

我需要使PHP成为一种基于颜色的搜索,用户将点击调色板上的颜色,搜索将检索具有主要相似颜色的所有图像。基于颜色的图像搜索引擎在PHP上

将从具有最相似颜色的图像中按降序对重现进行排序。

任何人都可以指出一些指导方针或现有的类,例子等。关于如何实现这一目标?

特别是,搜索的“aproximation”或“类似”部分将需要如何? 如何选择不同种类的“桔子”,并从最相似到最差的方式进行分类。

感谢

回答

1

首先,你应该不会搜索库在飞行中的图像。如果你必须找到每个图像的主要颜色,这将特别慢。你需要像爬虫一样的东西,但特别是对图像。

要找出主要的颜色,你需要一些坚实的数学基础:

http://en.wikipedia.org/wiki/Normal_distribution

+0

它不会做的飞行搜索。 这个想法是,每次上传图片时,提取8种主要颜色的基本调色板,并存储在数据库中。 这是我最大的怀疑开始的地方。 我应该存储哪种格式的颜色来优化搜索? RGB,HEX,HSL? 如何找到与{#166918}或{R:22 G:105 B:24?}相似的颜色 – Ericko 2010-11-18 17:03:29

+0

为简化起见,GD的'imagecolorclosest()'可能会帮助您解决问题 – stillstanding 2010-11-18 17:18:16

+0

您可以测量'imagecolorclosest'返回值和输入颜色。整数黑社会最适合搜索,但不一定用于存储。 – stillstanding 2010-11-18 17:24:01

1

我也做类似的工作。我的实现可以在这里找到http://code.google.com/p/hppg/。现场示例可以在项目主页中找到。此搜索引擎还可以同时搜索关键字和颜色。所有的详细信息和代码可以在项目主页找到。希望对你有所帮助:)

2

下面是我使用php GD lib函数分析图像的一个例子。从这里开始,您只需将分析的数据存储在数据库中以便在搜索过程中使用。

全部细节可以在这里找到:http://www.colab-aktiv.com/?page_id=263

的基本步骤如下:

  • 定义颜色的色板

  • 创建图像对象使用的形象,如果它太大,则调整图像大小

  • 创建图像对象并且将颜色样本中的颜色加载到图像调色板中。这是GIF图像使用的调色板。这是比较调色板,它将比较被分析图像中的颜色。

  • 循环遍历图像中的所有像素,并根据与比较调色板中像素的最接近匹配结果。

  • 排序理货结果降序排列

  • 显示结果的最前面