首先,通過文字搜索圖片
收藏圖片時,如果來自網頁HTML中的壹個img標簽,通常會有alt屬性作為圖片的標註,可以作為圖片的標簽,也可能是頁面的標題。如果是沒有alt的普通圖片,通過圖片分類器對圖片進行標註。
有了與圖片對應的標簽,通過文字搜索圖片的過程就變成了通過文字匹配標簽的過程,可以根據匹配程度依次顯示。
二、有圖搜圖
這個壹般指的是地圖識別功能,也就是要找到相似的圖片,需要計算圖片之間的相似度。
首先妳需要把圖像縮小,灰度化,然後取圖像的哈希,也就是圖像的指紋。圖片都是由像素組成的,每個像素由三原色(RGB)組成,其中每種顏色的值都是0~255,所以每個像素的值都是16777216(256 ^ 3),像素的大小信息會用文件格式描述。如果兩張圖所有像素都壹樣,那是肯定的。但是這種計算量太大,沒有壹點或者壹個像素差異的空間,而我們想要的其實是壹張看起來壹樣的圖片。所以需要提取圖片的哈希作為圖片的特征。
這樣的算法有很多,也是重點。比如phash(感知哈希算法)將圖片大小粗略縮小到8×8,去掉圖片大小的明暗差異,將顏色灰化,然後計算平均灰度,將每個像素與平均灰度進行比較,大於等於1小於0。這個差序列被散列作為圖像的特征。
PHash有相應的開源實現,然後還有SIFT,DCT等算法。復雜的算法也會對圖像失真有更好的效果。
得到hash後,通過計算它們之間的漢明距離,把漢明距離小的那張作為相似圖片,大概低於5,高於壹定閾值,就認為不相似。