本帖最后由 xfsolo 于 2013-12-11 13:54 编辑
%主函数main
close all;
tic
clear;
global num_disk
thin1=tuxiangyuchuli('37_7.bmp');
thin2=tuxiangyuchuli('22443.bmp');
figure;
num_disk=8;
for (angle=0:1:num_disk-1)
gabor=gabor2d_sub(angle,num_disk);
filteredRGB1= imfilter(thin1,gabor,'conv');
filteredRGB2= imfilter(thin2,gabor,'conv');
end
xihua1=refin(filteredRGB1);
xihua2=refin(filteredRGB2);
txy1=point(filteredRGB1);
txy2=point(filteredRGB2);
[w1]=guanghua(filteredRGB1,txy1);
[w2]=guanghua(filteredRGB2,txy2);
thin1=w1;
thin2=w2;
txy1=cut(thin1,txy1);
txy2=cut(thin2,txy2);
[pxy31,error2]=last1(thin1,8,txy1,60) %运行到这句出错,说是‘One or more output arguments not assigned’
[pxy32,error2]=last1(thin2,8,txy2,60)
error=1;
num=20;
cxy1=pxy31;
cxy2=pxy32;
d1=distance(cxy1(1,1),cxy1(1,2),num,thin1);
d2=distance(cxy2(1,1),cxy2(1,2),num,thin2);
f=(sum(abs((d1./d2)-1)));
if f<=0.5
error=0;
else
error=1;
end
c11=find_point(cxy1(1,1),cxy1(1,2),txy1,1);
c12=find_point(cxy1(1,1),cxy1(1,2),txy1,2);
c21=find_point(cxy2(1,1),cxy2(1,2),txy2,1);
c22=find_point(cxy2(1,1),cxy2(1,2),txy2,2);
cxy1(2,:)=c11;
cxy1(3,:)=c12(2,:);
cxy2(2,:)=c21;
cxy2(3,:)=c22(2,:);
x11=cxy1(1,1); y11=cxy1(1,2);
x12=cxy1(2,1); y12=cxy1(2,2);
x13=cxy1(3,1); y13=cxy1(3,2);
x21=cxy2(1,1); y21=cxy2(1,2);
x22=cxy2(2,1); y22=cxy2(2,2);
x23=cxy2(3,1); y23=cxy2(3,2);
dd1(1)=juli(x11,y11,x12,y12);
dd1(2)=juli(x12,y12,x13,y13);
dd1(3)=juli(x13,y13,x11,y11);
dd2(1)=juli(x21,y21,x22,y22);
dd2(2)=juli(x22,y22,x23,y23);
dd2(3)=juli(x23,y23,x21,y21);
ff=(sum(abs((dd1./(dd2+eps))-1)))
if ff<=1
error=0;
else
error=1;
end
cxy1(2:41,:)=find_point(pxy31(1,1),pxy31(1,2),txy1,40);
cxy2(2:41,:)=find_point(pxy32(1,1),pxy32(1,2),txy2,40);
f11=length(find(cxy1(:,3)==2));
f12=length(find(cxy1(:,3)==6));
f21=length(find(cxy2(:,3)==2));
f22=length(find(cxy2(:,3)==6));
fff=abs(f11-f21)/(f11+f12)
toc
last1 函数的输出参数有定义的,但是就是就是有这个‘One or more output arguments not assigned’,还请各位帮忙调试下,或说明下
2013-12-11 13:34 上传
点击文件名下载附件
187.32 KB, 下载次数: 480
完整代码