matlab图片差异度的比较,Matlab进行图像相似度比较,使用欧式距离
实验内容在网上或者提前准备10张(或以上)图像,使用matlab提取图像直方图特征并进行显示;将图像特征进行保存(保存为矩阵形式.mat格式),并进行图像相似度比较(使用欧式距离)。clear,clcfori=1:10b=['sce',num2str(i),'.jpg'];%s=imread(b);sce=rgb2gray(s);[m,n]=size(sce);h=imhist(sce,20);.
实验内容在网上或者提前准备10张(或以上)图像,使用matlab提取图像直方图特征并进行显示;将图像特征进行保存(保存为矩阵形式.mat格式),并进行图像相似度比较(使用欧式距离)。clear,clc
for i=1:10
b=['sce',num2str(i),'.jpg'];%
s=imread(b);
sce=rgb2gray(s);
[m,n]=size(sce);
h=imhist(sce,20);
H=['h',num2str(i),];
eval([H,'=h./(m*n);']);%对hi赋值
%save(H,'H');%存储hi.mat
end
mat=[h1,h2,h3,h4,h5,h6,h7,h8,h9,h10];
for i=1:10
for j=1:10
dis(i,j)=0;
for k=1:20
dis(i,j)=dis(i,j)+(mat(k,i)-mat(k,j))^2;
end
dis(i,j)=sqrt(dis(i,j));
if i==j
dis(i,j)=1;
end
end
end
x = input('Please input picture number:');
if x<1||x>10
disp('The number should be between 1 and 10.');
return;
end
b=['sce',num2str(x),'.jpg'];%
s=imread(b);
%figure(1);
subplot(1,2,1);
imshow(s);
title('原图');
[x,y]=min(dis(x,:));
b=['sce',num2str(y),'.jpg'];%
s=imread(b);
%figure(2);
subplot(1,2,2);
imshow(s);
title('图像检索');
%输入5效果较好

————————————————
版权声明:本文为CSDN博主「浮生之居士」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wcs_152/article/details/83049741
#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。
收藏 | 0点赞 | 0打赏作者
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)