Matlab进行图像相似度比较,使用欧式距离

实验内容
在网上或者提前准备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效果较好

image.png



————————————————

版权声明:本文为CSDN博主「浮生之居士」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/wcs_152/article/details/83049741


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864