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');
matlab直方图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);
三、结果展⽰
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论