Getting an error as "??? Error using ==> horzcat CAT arguments dimensions are not consistent" in the offline signature verification code below.

1 Ansicht (letzte 30 Tage)
In this error found in offline signature verification system code, when iam comparing a scaned signature image to the database image, the relative code will be as follows..
Error code:
function [aspect_ratio ,abs_height1 , abs_width ,gri_featu, z4]=create_template(namefile,pathname)
% function [cx,cy] =normal(j1,x,y);
% j=imread('D:\ProgramC\matlab\SIG_WORK\image\user10_image.bmp');
% j=imresize(j,[256 400]);
% j=fc(end:2:1,end:2:1);
namefile1=[pathname namefile];
j = imread(namefile1);
figure,imshow(j);
% p=logical(j);
[x,y]=size(j);
r_one=ones(x,10).*256;
c_one=ones(10,y+10).*256;
j=[r_one,j]; %mainly error found in this line
j=[c_one;j];
[x,y]=size(j);
figure,imshow(j);
% r_one=ones(x,1).*256;
% c_one=ones(1,y+1).*256;
% j=[r_one,j];
% j=[c_one;j];
cx=x/2;
cy=y/2;
h=[cx,cy];
% xmean=double(sum(sum(j(cx,:))))/cy
% ymean=double(sum(sum(j(:,cy))))/cx
% p=j(cx,:)
% v=p(:)-xmean
% summa1=0;
% for i=1:1:y
% summa1=summa1+((j(cx,:)-xmean)).^2
% end
v=j(round(cx),:);
% m=double(v(cy:y));
xmean=sum(v(:))/y;
% l2=m(:);
% l3=length(l2);
v1=j(:,round(cy));
% m1=double(v1(cx:x));
% l4=length(m1);
ymean=double(sum(v1(:))/x);
p=double(v-xmean);
p1=p().^2;
summa1=0;
for i=1:1:y
summa1=summa1+p1(i);
end
t1=summa1;
j1=double(v1-ymean);
u=zeros(y-x,1);
j1=[j1;u];
p2=j1().^2;
summa2=0;
for d=1:1:x
summa2=summa2+p2(d);
end
t2=summa2;
q0=p(:).*j1;
summa3=0;
for q=1:1:y
summa3=summa3+q0(q);
end
t3=summa3;
k1=acosd((1/(2^0.5))*(abs(1+(t1-t2))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k2=acosd(-(1/(2^0.5))*(abs(1+(t1-t2))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k3=-acosd((1/(2^0.5))*(abs(1+(t1-t2))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k4=-acosd(-(1/(2^0.5))*(abs(1+(t1-t2))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k5=acosd((1/(2^0.5))*(abs(1+(t2-t1))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k6=acosd(-(1/(2^0.5))*(abs(1+(t2-t1))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k7=-acosd((1/(2^0.5))*(abs(1+(t2-t1))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
k8=-acosd(-(1/(2^0.5))*(abs(1+(t2-t1))/(t1^2+4*t3^2-2*t1*t2+t2^2)^0.5)^0.5);
f1=(cos(angle(k1)))^2*t1+2*cos(angle(k1))*sin(angle(k1))*t3+(sin(angle(k1)))^2*t2;
f2=(cos(angle(k2)))^2*t1+2*cos(angle(k2))*sin(angle(k2))*t3+(sin(angle(k2)))^2*t2;
f3=(cos(angle(k3)))^2*t1+2*cos(angle(k3))*sin(angle(k3))*t3+(sin(angle(k3)))^2*t2;
f4=(cos(angle(k4)))^2*t1+2*cos(angle(k4))*sin(angle(k4))*t3+(sin(angle(k4)))^2*t2;
f5=(cos(angle(k5)))^2*t1+2*cos(angle(k5))*sin(angle(k5))*t3+(sin(angle(k5)))^2*t2;
f6=(cos(angle(k6)))^2*t1+2*cos(angle(k6))*sin(angle(k6))*t3+(sin(angle(k6)))^2*t2;
f7=(cos(angle(k7)))^2*t1+2*cos(angle(k7))*sin(angle(k7))*t3+(sin(angle(k7)))^2*t2;
f8=(cos(angle(k8)))^2*t1+2*cos(angle(k8))*sin(angle(k8))*t3+(sin(angle(k8)))^2*t2;
if (f1>=f3&f1>=f2&f1>=f4&f1>=f5&f1>=f6&f1>=f7&f1>=f8)
if(k1<k2&k1<k3&k1<k4&k1<k6&k1<k7&k1<k8)
l0=[cosd(angle(k1)) sind(angle(k1)) 0
-sind(angle(k1)) cosd(angle(k1)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
figure,imshow(transformedim);
% % else
% l0=[cosd(angle(k2)) sind(angle(k2)) 0
% -sind(angle(k2)) cosd(angle(k2)) 0
% 0 0 1];
%trform=maketform('affine',l0)
%
%tformfwd([cx cy],trform);
%transformedim=imtransform(j,trform);
%figure,imview(transformedim);
end
end
if (f2>=f3&f2>=f1&f2>=f4&f2>=f5&f2>=f6&f2>=f7&f2>=f8)
if (k2<k1&k2<k3&k2<k4&k2<k5&k2<k7&k2<k8)
l0=[cosd(angle(k2)) sind(angle(k2)) 0
-sind(angle(k2)) cosd(angle(k2)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
figure,imshow(transformedim);
end
end
% % % else
% l0=[cosd(angle(k4)) sind(angle(k4)) 0
% -sind(angle(k4)) cosd(angle(k4)) 0
% 0 0 1];
% trform=maketform('affine',l0)
%
% tformfwd([cx cy],trform);
% transformedim=imtransform(j,trform);
% figure,imview(transformedim);
% % % end
% % % end
if(f3>=f2&f3>=f1&f3>=f4&f3>=f5&f3>=f6&f3>=f7&f3>=f8)
if (k3<k2&k3<k1&k3<k4&k3<k5&k3<k6&k3<k8)
l0=[cosd(angle(k3)) sind(angle(k3)) 0
-sind(angle(k3)) cosd(angle(k3)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
figure,imshow(transformedim);
end
end
% % % else
% % % l0=[cosd(angle(k6)) sind(angle(k6)) 0
% % % -sind(angle(k6)) cosd(angle(k6)) 0
% % % 0 0 1];
% % % trform=maketform('affine',l0)
% % %
% % % tformfwd([cx cy],trform);
% % % transformedim=imtransform(j,trform);
% % % figure,imview(transformedim);
% % % end
% % % end
if (f4>=f2&f4>=f1&f4>=f3&f4>=f5&f4>=f6&f4>=f7&f4>=f8)
if (k4<k2&k4<k3&k4<k5&k4<k6&k4<k7&k4<k1)
l0=[cosd(angle(k4)) sind(angle(k4)) 0
-sind(angle(k4)) cosd(angle(k4)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
% figure,imview(transformedim);
end
end
if (f5>=f2&f5>=f1&f5>=f3&f5>=f4&f5>=f6&f5>=f7&f5>=f8)
if (k5<k2&k5<k3&k5<k4&k5<k6&k5<k7&k5<k8)
l0=[cosd(angle(k5)) sind(angle(k5)) 0
-sind(angle(k5)) cosd(angle(k5)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
% figure,imview(transformedim);
end
end
if (f6>=f2&f6>=f1&f6>=f3&f6>=f4&f6>=f5&f6>=f7&f6>=f8)
if (k6<k1&k6<k3&k6<k4&k6<k5&k6<k7&k6<k8)
l0=[cosd(angle(k6)) sind(angle(k6)) 0
-sind(angle(k6)) cosd(angle(k6)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
% figure,imview(transformedim);
end
end
if (f7>=f2&f7>=f1&f7>=f3&f7>=f4&f7>=f5&f7>=f6&f7>=f8)
if (k7<k1&k7<k2&k7<k4&k7<k5&k7<k6&k7<k8)
l0=[cosd(angle(k7)) sind(angle(k7)) 0
-sind(angle(k7)) cosd(angle(k7)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
% figure,imview(transformedim);
end
end
if (f8>=f2&f8>=f1&f8>=f3&f8>=f4&f8>=f5&f8>=f7&f8>=f6)
if (k8<k1&k8<k3&k8<k2&k8<k5&k8<k7&k8<k6)
l0=[cosd(angle(k8)) sind(angle(k8)) 0
-sind(angle(k8)) cosd(angle(k8)) 0
0 0 1];
trform=maketform('affine',l0);
tformfwd([cx cy],trform);
transformedim=imtransform(j,trform);
% figure,imview(transformedim);
end
end
figure,imshow(transformedim);
h01=double(transformedim);
% h1=houghl(h01);
% figure(4),imshow(h1,[]);
[h0,t]=edge(transformedim,'roberts',0.00001,'horizontal');
h1= im2double(h0);
h2=fspecial('gaussian',2,15);
h3=imfilter(h1,h2,'replicate');
h4=im2bw(h1,0.00001*graythresh(h3));
fth=bwmorph(h4,'skel',5);
% z1=skelztn(h4);
% fth=bwmorph(h4,'thin',inf);
z2=double(imcomplement(fth));
z3=h01()-z2();
z3=logical(z3);
z4=bwmorph(z3,'spur',inf);
z4=mat2gray(double(z4));
z4(:,2:12)=[];
z4(1:23,:)=[];
[x1,y1]=size(z4);
% se=strel('disk',1);
% fo=imopen(z4,se);
% fclo=imclose(fo,se);
% z1=skelztn(z3);
% z4=xor(z1,z3);
figure,imshow(z4);
% z5=cutboarder(z4);
% figure(6),imview(z5);
%
% z7=cooccurencemat(z4,2,-1,0);
%%%%%%***GlobalFeatures***%%%%%%%%%
for i1=1:1:x1
for d1=1:1:y1
if z4(i1,d1)==0
s1=i1;
r1=d1;
break
end
end
end
for i2=x1:-1:1
for d2=1:1:y1
if z4(i2,d2)==0
s2=i2;
r2=d2;
break;
end
end
end
height=s1-s2;
for d3=1:1:y1
for i3=1:1:x1
if z4(i3,d3)==0
s3=d3;
r3=i3;
break
end
end
end
for d4=y1:-1:1
for i4=1:1:x1
if z4(i4,d4)==0
s4=d4;
r4=i4;
break
end
end
end
width_norma=s3-s4;
aspect_ratio=height/width_norma;
sum_z4=sum(sum(z4));
black_area=(x1*y1)-sum_z4;
count=0;
for c1=s2:1:x1
if z4(c1,r2)==0
count=count+1;
end
end
abs_height1=count;
count1=0;
for c2=s3:1:y1
if z4(r3,s3)==0
count1=count1+1;
end
end
abs_width=count1;
% z7=cooccurencemat(z4,4,1,0);
% **** grid features********
j=logical(j);
fs1=j(1:x/2,:);
fs2=j(:,1:y/2);
[xf1,yf1]=size(fs1);
sum_fs1=sum(sum(fs1));
no_black1=(xf1*yf1)-sum_fs1;
% Fs2=J(:,1:Y/2);
[xf2,yf2]=size(fs2);
sum_fs2=sum(sum(fs2));
no_black2=(xf2*yf2)-sum_fs2;
fs3=fs1(1:xf1/2,:);
[xf3,yf3]=size(fs3);
sum_fs3=sum(sum(fs3));
no_black3=(xf3*yf3)-sum_fs3;
fs4=fs1(:,1:yf1/2);
[xf4,yf4]=size(fs4);
sum_fs4=sum(sum(fs4));
no_black4=(xf4*yf4)-sum_fs4;
fs5=fs2(1:xf2/2,:);
[xf5,yf5]=size(fs5);
sum_fs5=sum(sum(fs5));
no_black5=(xf5*yf5)-sum_fs5;
fs6=fs2(:,1:yf2/2);
[xf6,yf6]=size(fs6);
sum_fs6=sum(sum(fs6));
no_black6=(xf6*yf6)-sum_fs6;
fs7=fs3(1:xf3/2,:);
[xf7,yf7]=size(fs7);
sum_fs7=sum(sum(fs7));
no_black7=(xf7*yf7)-sum_fs7;
fs8=fs3(:,1:yf3/2);
[xf8,yf8]=size(fs8);
sum_fs8=sum(sum(fs8));
no_black8=(xf8*yf8)-sum_fs8;
fs9=fs4(1:xf4/2,:);
[xf9,yf9]=size(fs9);
sum_fs9=sum(sum(fs9));
no_black9=(xf9*yf9)-sum_fs9;
fs10=fs4(:,1:yf4/2);
[xf10,yf10]=size(fs10);
sum_fs10=sum(sum(fs10));
no_black10=(xf10*yf10)-sum_fs10;
gri_featu=[no_black1,no_black2,no_black3,no_black4,no_black5,no_black6,no_black7,no_black8,no_black9,no_black10];
clc;
% save('template file', 'aspect_ratio','abs_height1','abs_width','gri_featu','z4')

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 29 Nov. 2013
The image is probably being received as an RGB image, which would be 3 dimensional. You are then trying to combine it with a 2 dimensional variable.
I suggest that you should use
j = rgb2gray(j);
just before your line
[x,y]=size(j);

Weitere Antworten (0)

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by