Matlab实现感知哈希算法


参考网上博客的感知哈希算法的理论知识,实现基本的感知哈希算法,内有几张图片用来测试,程序可参考。
资源截图
代码片段和文件信息
%参考博客http://blog.csdn.net/haluoluo211/article/details/52769325

clear;
clc;
X1=imread(‘1.jpg‘‘jpg‘);
X2=imread(‘2.jpg‘‘jpg‘);
[x1 y1]=size(X1);   %获取长宽
[x2 y2]=size(X2);   %获取长宽
resize_width = 9;
resize_height = 8;

small_X1=imresize(X1[8 9]‘bilinear‘);    %双线性插值缩小图像
small_X2=imresize(X2[8 9]‘bilinear‘);    %双线性插值缩小图像

Hash_X1=size(164);
Hash_X2=size(164);

%
%如果前一个像素的颜色强度大于第二个像素,那么差异值就设置为True(也就是1),如果不大于第二个像素,就设置为False(也就是0)。
%
t=1;
for i=1:8
    for j=1:8
        if(small_X1(ij) > small_X1(ij+1))
            Hash_X1(1t)=1;
        else
            Hash_X1(1t)=0;
        end
        
        if(small_X2(ij) > small_X2(ij+1))
            Hash_X2(1t)=1;
        else
            Hash_X2(1t)=0;
        end
        t=t+1;
    end
end

dHash=0;
for m=1:64
    if(Hash_X1(m) ~= Hash_X2(m))
      dHash=dHash+1;
    end
end

dHash=(64-dHash)/64;   %相似度


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-11 23:39  Hash
     文件     6015243  2017-11-11 23:29  Hash1.jpg
     文件     6023832  2017-11-11 23:31  Hash2.jpg
     文件     6027733  2017-11-11 23:31  Hash3.jpg
     文件     5166372  2017-11-11 23:32  Hash4.jpg
     文件        1009  2017-11-12 21:03  HashHash.m
     文件       13227  2017-10-26 15:17  Hashlana.jpg
     文件      125388  2003-05-03 21:53  Hashliftingbody.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)