MATLAB 感知雜湊演算法 筆記

2021-09-26 11:09:12 字數 1041 閱讀 2148

根據部落格:

的描述簡單和個人的理解的寫出了matlab**,這裡個簡單記錄。

第一步,縮小尺寸。

第二步,簡化色彩。

第四步,比較畫素的灰度。

第五步,計算雜湊值。

%% 感知雜湊簡易演算法進行影象搜尋

% 這種演算法的優點是簡單快速,不受大小縮放的影響,缺點是的內容不能變更。

% 如果在上加幾個文字,它就認不出來了。所以,它的最佳用途是根據縮圖,找出原圖。

clc;

clear all;

% 第一,將影象縮放到8*8大小,縮放不變性

figure,imshow(i),title('原始影象');

j=imresize(i,[8,8]);

figure,imshow(j),title('8*8影象');

% 第二、將影象灰度化到64個灰度級,灰度粗化

img = double(rgb2gray(j));

img_64 = floor(img/255*64);

figure,imshow(img_64),title('8*8-64級影象');

% 第三、計算灰度平均值

gray_mean = sum(img_64(:))/64;

% 第四、將所有畫素的灰度和均值比較,大於的為1,小於的為0

feature_img = zeros(8,8);

for i=1:8

for j=1:8

if img_64(i,j) >= gray_mean

feature_img(i,j) = 1;

endend

endfigure,imshow(feature_img),title('8*8特徵影象');

% 第五步,計算雜湊值。將其變換成一行即可。

hash_feature = reshape(feature_img,1,64)

% 兩個雜湊值中小於5個不同,說明很相似的圖。大於10說明是不同的**。

感知雜湊演算法

感知雜湊演算法是一類雜湊演算法的總稱,其作用在於生成每張影象的 指紋 fingerprint 字串,比較不同影象的指紋資訊來判斷影象的相似性。結果越接近影象越相似。感知雜湊演算法包括均值雜湊 ahash 感知雜湊 phash 和dhash 差異值雜湊 ahash速度較快,但精確度較低 phash則反...

感知雜湊演算法

感知雜湊演算法 perceptual hash algorithm 它的作用是對每張生成乙個 指紋 fingerprint 字串,然後比較不同的指紋。結果越接近,就說明越相似。缺點 的內容不能更改。hash演算法原理 第一步,縮小尺寸。將縮小到8 8的尺寸,總共64個畫素。這一步的作用是去除的細節,...

感知雜湊演算法

有一些搜尋引擎有搜尋相似的功能,比如google,其中是什麼原理呢?其實我們利用乙個演算法就能達到相似的效果,其中涉及到的演算法就是 感知雜湊演算法 perceptual hash algorithm 下面就簡單介紹下該演算法。1.縮小的尺寸 將縮小到8 8的尺寸,總共64個畫素,這樣做的目的是去除...