📄 all1025ding.m
字号:
end
end
cunna=zeros(m,n);
na=na1;tc=0;
for i=1:(m)
j=1;
while(j<=n)
t1=na(i,j);
kk8=i;kk10=i;
kk9=j;kk11=j;
if t1 >0
tb=1; cunna(kk8,kk9)=t1;
[t2,kk8,kk9]=napos2(na,kk8,kk9);
while t2>0 && kk9<n
cunna(kk8,kk9)=t2; na(kk8,kk9)=0;
[t2,kk8,kk9]=napos2(na,kk8,kk9);
cunna(kk8,kk9)=t2;
na(kk8,kk9)=0;
tb=tb+1;
end
if ((double(kk8)-i)==0 && (double(kk9)-j) >10)||((double(kk8)-i)>10 && (double(kk9)-j)==0)
for ss=i:kk8
for tt=j:kk9
na(ss,tt)=0;
cunna(ss,tt)=0;
end
end
elseif (abs(double(kk9)-j)<=1||abs(double(kk8)-i)<=1)||(tb <8&& tb>0)
for ss=i:kk8
for tt=j:kk9
na(ss,tt)=0;
cunna(ss,tt)=0;
end
end
elseif tb>=8
tc=tc+1;
hann(1,tc)=kk8;lien(1,tc)=kk9;
hanni(1,tc)=i;lienj(1,tc)=j; longn(1,tc)=tb;
% tt2=cunna; figure(112),imshow(tt2),title('.....');
else
k=1 ;
end
end
j=j+1;
end
end
k12=tc;
k4=0;
if tc >1
for n2=1:(tc)
c1= hann(1,n2)+round(bb/2); %%%%%%%%%%%终点
c2=lien(1,n2)+round(bb/2);
for n1=(n2+1):tc
c3=abs( hanni(1,n1)-c1) ;
c4=abs( lienj(1,n1)-c2) ;
if (c3<=bb/2) && (c4<=bb/2)
k4=k4+1;
BBBB(1,k4)=n2;%%%%%%%%%%%终点相关联点
AAAA(1,k4)=n1;%%%%%%%%%%%起点
end
end
end
end
longn2= longn;
if k4 >0
for i=1:k4
cp1=BBBB(1,i);
cp2=AAAA(1,i);
hann(1,cp1)=hann(1,cp2); %%%%%%%%%终止点
lien(1,cp1)=lien(1,cp2);
hanni(1,cp2)=hanni(1,cp1);%%%%%%%%%%%起点
lienj(1,cp2)=lienj(1,cp1);
longn2(1,cp2)=longn(1,cp2)+longn(1,cp1)+round(bb/2);
longn2(1,cp1)=longn(1,cp2)+longn(1,cp1)+round(bb/2);
end
end
figure(108),imshow(cunna),title('a3捺');
%%%%%%%%%%%%%%%%%%撇
aaa=atl;%正侧的行边缘
dddd=0;
for kkkk=1:bb
for i=1:(m)
for j=1:(n-1)
t1=aaa(i,j);
if t1 >0
dddd=dddd+1;
else
if dddd>5
dddd=0;
if A(i,j) >5
aaa(i,j)=aaa(i,j-1);
end
else
dddd=0;
end
end
end
end
end
end
dddd=0;
for kkkk=1:bb
for i=1:(m)
for j=n:-1:(2)
t1=aaa(i,j);
if t1>0
dddd=dddd+1;
else
if dddd>5
dddd=0;
if A(i,j) >5
aaa(i,j)=aaa(i,j+1);
end
else
dddd=0;
end
end
end
end
end
end
%%%%%%%%%%%滤波
dd=0;
for i=1:(m)
j=1;
while(j<=n)
t1=aaa(i,j);
if t1 >0
k9=j;
while aaa(i,k9)>0
dd=dd+1;
k9=k9+1;
if k9 > n
k9=k9-1;
break;
end
end
if dd < 9
for k8=dd:-1:1;
tttt=k9-k8;
aaa(i,k9-k8)=0;
end
j=j+dd-1;
dd=0;
else
j=j+dd-1;
end
dd=0;
end
j=j+1;
end
end
%%%%%%%%%%
for j=1:(n)
for i=1:(m)
pie1(i,j)=apie(i,j)-aaah(i,j)-aaa(i,j);
end
end
%
figure(109),imshow(pie1),title('00');
cunpie=zeros(m,n);
pie=pie1;
tc=0;
for i=1:(m)
j=n;
while(j>=1)
t1=pie(i,j); kk9=j;
kk8=i;
if t1 >0
tb=0; cunpie(kk8,kk9)=t1;
[t3,kk8,kk9]=piepos(pie,kk8,kk9);
while t3>0&& kk9<n
cunpie(kk8,kk9)=t3;
pie(kk8,kk9)=0;
[t3,kk8,kk9]=piepos(pie,kk8,kk9);
cunpie(kk8,kk9)=t3;
tb=tb+1;
end
if ((double(kk8)-i)==0 && (j-double(kk9)) >10)||((double(kk8)-i)>10 && (j-double(kk9))==0)
for ss=i:kk8
for tt=j:-1:kk9
pie(ss,tt)=0;
cunpie(ss,tt)=0;
end
end
elseif (tb < 8&&tb >0) || (abs(double(kk9)-j)<=1||abs(double(kk8)-i)<=1 )
for ss=i:kk8
for tt=j:-1:kk9
pie(ss,tt)=0;
cunpie(ss,tt)=0;
end
end
elseif tb>=8
tc=tc+1;
hanp(1,tc)=kk8;liep(1,tc)=kk9;
hanpi(1,tc)=i;liepj(1,tc)=j;
longp(1,tc)=tb;
else
k=1 ;
end
end
j=j-1;
end
end
end
k13=tc;
k5=0;
if tc >1
for n2=1:(tc)
c1= hanp(1,n2)+round(bb/2); %%%%%%%%%%%终点
c2=abs(liep(1,n2)-round(bb/2));
for n1=(n2+1):tc
c3=abs( hanpi(1,n1)-c1) ;
c4=abs( liepj(1,n1)-c2) ;
if c3<=bb/2 && c4<=bb/2
k5=k5+1;
BBBBp(1,k5)=n2;%%%%%%%%%%%终点
AAAAp(1,k5)=n1;%%%%%%%%%%%起点
end
end
end
end
longp2=longp;
for i=1:k5
cc1=BBBBp(1,i);
cc2=AAAAp(1,i);
hanp(1,cc1)=hanp(1,cc2);%%%%终止点
liep(1,cc1)=hanp(1,cc2);
hanpi(1,cc2)=hanpi(1,cc1);%%%%起始点
liepj(1,cc2)=hanpi(1,cc1);
longp2(1,cc1)=longp(1,cc1)+longp(1,cc2)+round(bb/2);
longp2(1,cc2)=longp(1,cc1)+longp(1,cc2)+round(bb/2);
end
%%%%%%%%%%%%%%%%%%撇
k12;
k13;
k6=0;
for i=1:k12
c1= hanni(1,i); %%%%%%%%%%%终点
c2=(lienj(1,i));
for j=(1):k13
c3=abs( hanp(1,j)-c1) ;
c4=abs( liep(1,j)-c2) ;
if c3<=4 && c4<=4
k6=k6+1;
BBBBnn(1,k6)=i;%%%%%%%%%%%终点
AAAApn(1,k6)=j;%%%%%%%%%%%起点
end
end
end
figure(110),imshow(cunpie),title('撇');
%%%%%%%%%%%%%%%%%%%%%以下为撇与捺的滤波,主要是消除短捺!!!
for i=1:k6
jj=BBBBnn(1,i);
j2=AAAApn(1,i);
kk8=hanni(1,jj);
kk9=lienj(1,jj);
kk10=hanpi(1,j2);
kk11=liepj(1,j2);
cl3=hann(1,jj);
cl4=lien(1,jj);
lonpp=longp2(1,j2);
lonnn=longn2(1,jj);bb
t6=cunna(kk8,kk9);
t7=cunpie(kk10,kk11);
if (lonnn<lonpp)&&(lonnn<bb)
while t6>0
[t6,cunna,kk8,kk9]=clrna(cunna,kk8,kk9);
end
elseif (lonnn>=lonpp)&&(lonpp<bb)
while t7>0
[t7,cunpie,kk10,kk11]=clrpie(cunpie,kk10,kk11);
end
else
k=k+1;
end
end
figure(103),imshow(cunpie),title('撇');
figure(102),imshow(cunna),title('a3捺');
for i=1:m
for j=1:n
if double(ahen(i,j))>0
ahen(i,j)=255;
else
ahen(i,j)=0;
end
end
end
for i=1:m
for j=1:n
if double( alie(i,j))>0
alie(i,j)=255;
else
alie(i,j)=0;
end
end
end
for i=1:m
for j=1:n
if double(cunpie(i,j))>0
cunpie(i,j)=255;
else
cunpie(i,j)=0;
end
end
end
for j=1:n
if double(cunna(i,j))>0
cunna(i,j)=255;
else
cunna(i,j)=0;
end
end
end
for i=1:m
for j=1:n
all(i,j)=double(ahen(i,j))+double(cunna(i,j))+double(alie(i,j))+double(cunpie(i,j)); %所有边缘
end
end
figure(104),imshow(all),title('全字');
toc;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -