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);

三、结果展示


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部