概述
根据博客:http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html
的描述简单和个人的理解的写出了MATLAB代码,这里个简单记录。
第一步,缩小尺寸。
第二步,简化色彩。
第四步,比较像素的灰度。
第五步,计算哈希值。
代码:
%% 感知哈希简易算法进行图像搜索
% 这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。
% 如果在图片上加几个文字,它就认不出来了。所以,它的最佳用途是根据缩略图,找出原图。
clc;
clear all;
% 第一,将图像缩放到8*8大小,缩放不变性
I=imread('MN.jpg');
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;
end
end
end
figure,imshow(feature_img),title('8*8特征图像');
% 第五步,计算哈希值。将其变换成一行即可。
hash_feature = reshape(feature_img,1,64)
% 两个哈希值中小于5个不同,说明很相似的图。大于10说明是不同的照片。
最后
以上就是从容心锁为你收集整理的MATLAB 感知哈希算法 笔记代码:的全部内容,希望文章能够帮你解决MATLAB 感知哈希算法 笔记代码:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复