2010-11-18 72 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圖像使用的調色板。這是比較調色板,它將比較被分析圖像中的顏色。

  • 循環遍歷圖像中的所有像素,並根據與比較調色板中像素的最接近匹配結果。

  • 排序理貨結果降序排列

  • 顯示結果的最前面