function v=tineyesearch_hist(picture1,picture2)
t1=picture1;
[a1,b1]=size(t1);
t2=picture2;
t2=imresize(t2,[a1 b1],'bicubic');%缩放为一致大小
t1=round(t1);
t2=round(t2);
e1=zeros(1,256);
e2=zeros(1,256);
%获取直方图分布
for i=1:a1
for j=1:b1
m1=t1(i,j)+1;
m2=t2(i,j)+1;
e1(m1)=e1(m1)+1;
e2(m2)=e2(m2)+1;
end
end
figure;
imhist(uint8(t1));
figure;
imhist(uint8(t2));
%将直方图分为64个区
m1=zeros(1,64);
m2=zeros(1,64);
for i=0:63
m1(1,i+1)=e1(4*i+1)+e1(4*i+2)+e1(4*i+3)+e1(4*i+4);
m2(1,i+1)=e2(4*i+1)+e2(4*i+2)+e2(4*i+3)+e2(4*i+4);
end
%计算余弦相似度
A=sqrt(sum(sum(m1.^2)));
B=sqrt(sum(sum(m2.^2)));
C=sum(sum(m1.*m2));
cos1=C/(A*B);%计算余弦值
cos2=acos(cos1);%弧度
v=cos2*180/pi;%换算成角度
figure;
imshow(uint8([t1,t2]));
title(['余弦值为:',num2str(cos1),' ','余弦夹角为:',num2str(v),'°']);
matlab中比较图片相似性,下面是我找到的一个代码,第二行就运行不出来,图片在哪里导入小白一个,求助呀
答案:2 悬赏:0 手机版
解决时间 2021-01-02 18:22
- 提问者网友:留有余香
- 2021-01-02 03:33
最佳答案
- 五星知识达人网友:怙棘
- 2021-01-02 04:48
这前半部分不是在建函数吗,怎么和脚本放在一起了。应该另外先把函数建好(注意文件名必须和函数名相同,即’tineyesearch_hist‘)。然后在重新建个脚本调用你自己建好的函数。
全部回答
- 1楼网友:煞尾
- 2021-01-02 06:23
没看太明白题主到底想要做什么。
在代码的最后有这样两句:
set(handles.uitable2,‘data’,d);
set(handles.uitable2,‘data’,c);其效果是,前面一句不会起作用,因为uitable的data属性随后就被覆盖了。
如果希望同时显示d和c,应该把d和c拼接得到一个矩阵,然后再显示。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯