DHA是一類比較哈希方法的統稱。圖片所包含的特徵被用來生成一組指紋(不過它不是唯一的),而這些指紋是可以進行比較的。
下面是簡單的步驟,來說明對圖像進行DHA的運算過程 :
第一步,縮小圖片。
最快速的去除高頻和細節,只保留結構明暗的方法就是縮小尺寸。
將圖片縮小到9x8的尺寸,總共72個像素。摒棄不同尺寸、比例帶來的圖片差異。
第二步,簡化色彩。
將縮小後的圖片,轉為64級灰度。也就是說,所有像素點總共只有64種顏色。
第三步,計算差異值。
對矩陣的每一行進行如下操作:相鄰的兩個元素進行相減(左邊元素減右邊元素),得出8個不同的差異值,這樣總共得到64個差異值。
第四步,對差異值進行處理,若為正數或0,則記得為1;若為負數,記為0。
第五步,將64個結果結合在一起就得到一個哈希值(每張圖像的64個值組合順序要一致),這就是圖像的“指紋”。
相比PHA,DHA的速度要快的多,相比AHA,DHA在效率幾乎相同的情況下的效果要更好,因為DHA是基於漸變實現的。
這種指紋算法不僅可以套用與圖片搜尋,同樣適用於其他多媒體形式。