?? strdetect01.m
字號:
function [Stroke]= StrDetect01(LeftD,Y1,Y2,ST,PT)
% ST為結構閾值,為了指定高度和寬度結構變化的不同
SL=0;
SR=0;
SV=0;
Count=0;
%PT=5; % 突變的閾值
Str='T'; % T表示結構未定,Str用于保存當前的基本結構
Stroke='T'; % 用于保存基本結構
Range=Y2-Y1+1; % 字符的寬度或者高度
for j=Y1:Y2
Count=Count+1;
if (abs(LeftD(j))<PT)
if (LeftD(j)<0)
SL=SL+1;
else if (LeftD(j)>0)
SR=SR+1;
else
SV=SV+1;
end
end
else % 檢測到突變的決策
if ((Count>=fix(Range/4)+1)) % 設定字符輪廓可能發生的突變范圍
if ((SL>=3)&&(SR>=3))
Str='C';
else if ((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))
Str='V';
else if ((SL>SR)&&((SL>=0.5*SV)&&((SR<=1)||(SL>(SR+SV)))))
Str='L';
else if ((SR>SL)&&((SR>=0.5*SV)&&((SL<=1)||(SL>(SR+SV)))))
Str='R';
else if (max(SL,SR)>=3)&&(min(SL,SR)>=2)
Str='C';
end
end
end
end
end
Stroke=[Stroke Str];
end
if ((j>=2+Y1)&&((j<=Y2-2)))
Stroke=[Stroke 'P'];
end
SL=0;
SR=0;
SV=0;
Count=0;
Str='T';
end
end
%========= 提取結構 ===============%
if (Count>=fix(Range/4)+1) % 發生突變后,剩余部分可能無法形成字符結構
if ((SL>=ST)&&(SR>=ST))
Str='C';
else if ((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))
Str='V';
else if ((SL>SR)&&((SL>=0.5*SV)&&((SR<=2)||(SL>=(SR+SV)))))
Str='L';
else if ((SR>SL)&&((SR>=0.5*SV)&&((SL<=2)||(SL>=(SR+SV)))))
Str='R';
else if (max(SL,SR)>=3)&&(min(SL,SR)>=2)
Str='C';
end
end
end
end
end
Stroke=[Stroke Str];
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -