感知哈希算法(Perceptual Hash Algorithm) 算法
意思是爲圖片生成一個指紋(字符串格式), 兩張圖片的指紋越類似, 說明兩張圖片就越類似. 但關鍵是如何根據圖片計算出"指紋"呢? 下面用最簡單的步驟來講明一下原理: spa
將圖片縮小到8x8的尺寸, 總共64個像素. 這一步的做用是去除各類圖片尺寸和圖片比例的差別, 只保留結構、明暗等基本信息. .net
將縮小後的圖片, 轉爲64級灰度圖片. 圖片
計算圖片中全部像素的灰度平均值 字符串
將每一個像素的灰度與平均值進行比較, 若是大於或等於平均值記爲1, 小於平均值記爲0. get
將上一步的比較結果, 組合在一塊兒, 就構成了一個64位的二進制整數, 這就是這張圖片的指紋. it
獲得圖片的指紋後, 就能夠對比不一樣的圖片的指紋, 計算出64位中有多少位是不同的. 若是不相同的數據位數不超過5, 就說明兩張圖片很類似, 若是大於10, 說明它們是兩張不一樣的圖片. 原理
demo下載地址:http://download.csdn.net/detail/yjflinchong/4239243 下載