搜尋

首頁  >  問答  >  主體

ios - 求比较两幅图片是相似度的代码范例

如题,如果有iOS客和Android客户端的示例代码,那是最好了。
如果只有服务端的也可以,参考着做。

PHP中文网PHP中文网2773 天前709

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 11:40:05

    感知雜湊演算法 - Perceptual hash algorithm

    簡單步驟:

    1. 第一步,縮小尺寸。
    2. 第二步,簡化色彩。
    3. 第三步,計算平均值。
    4. 第四步,比較像素的灰階。
    5. 第五步,計算雜湊值。

    參考連結:相似圖片搜尋的原理 - 阮一峰 | 顏色分佈法 和 內容特徵法


    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 11:40:05

    相似度這個東西很模糊啊。 。 。如果只是想實作一個簡單的版本,我在stackoverflow找到一個很有趣的演算法:

    1. 把兩張圖片縮小到某個較小的、相同的尺寸,例如64*64或32*32。縮小的時候每個像素的值是周圍n個像素的值的函數,簡單的話就用平均。
    2. 擴展顏色範圍,讓圖片中顏色最深的為全黑,最淺的為全白
    3. 旋轉/翻轉圖片,讓圖片四個角落的像素從左上角開始順時針遞減排列。

    然後再求兩張圖片每個點相似度的均值(相似度可以用差值、差值平方、或者根據位置再乘上權重什麼的,弄些數據跑一下選擇效果最好的)。

    有趣的是,這個演算法甚至可以支援預先計算好一批圖片,然後從資料庫中查詢相似的:

    To look up a possible match in a database, store the pixel colors as inpidual columns in the database, index a bunch of them (but not all, unless you use a very small image), and do a query that uses a range for each pixel value, ie. every image where the pixel in the small image is between -5 and +5 of the image you want to look up.

    回覆
    0
  • 取消回覆