matlab 图像比较,MATLAB比较图像的相似度---图像搜索算法

一、图像相似度计算相关原理

通过图片进行搜索相似图标的算法实现是:利用感知“感知哈希算法”,就是每一张图片都按照某种桂林生成唯一的“标识”,通过对“标识”进 比较,那么可以判断两张照片是相似以及相似程度。

相似度计算用到的算法:

1、直方图匹配

例如有图1和图2,分别计算两幅图像的直方图,Hist1,Hist2,然后计算两个直方图的归一化相关系数(巴氏距离,直方图相交距离)等等。

这种思想是基于简单的数学上的向量之间的差异来进行图像相似程度的度量,这种方法是目前用的比较多的一种方法,第一,直方图能够很好的归一化,比如通常的256个bin条的。那么两幅分辨率不同的图像可以直接通过计算直方图来计算相似度很方便。而且计算量比较小。

2、算法思想如下:

1、输入图像

2、灰度化

3、将图像大小归一化

4、简化灰度以减少计算量,例如所有的灰度除以5

5、计算平均灰度值avg

6.比较平均灰度值avg的大小,若大则记为1,小则记为0

7.比较两幅图像的指纹编码,计算相似度。

二、程序

clc;clear;close all;

%set(gcf,'outerposition',get(0,'screensize'));

imag1 = '2.jpg';

imag2 = '23.jpg';

[count1,I1] = GetRgbHist(imag1);

[count2,I2] = GetRgbHist(imag2);

value = imsimilar(count1,count2,2);

subplot(2,2,1);imshow(I1);title('Original Image');

subplot(2,2,2);hold on;imshow(I2);title('Image scale of 80%');

subplot(2,1,2);

plot(count1);

hold on;

plot(count2,'r');

legend('Original Image','Image scale of 80%',2);

str = sprintf('Similarity:%s %%',num2str(value));

title(str);

三、结果展示

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值