📄 weight_abstractperiphery.m
字号:
function P = Weight_AbstractPeriphery(im)
%加权粗外围特征
%从文字四边框各向对边扫描,计算最初与文字笔划相碰的非文字部分的面积和全部面积之比作为一次粗外围特征Pi(i =1,…,4n)
%再将第二次文字线相碰的非文字部分面积和全部面积之比作为二次粗外围特征 Pi(i =1,…,4n ),形成8n维的特征向量
Im= im(:,:,1);
% [NumRows,NumCols] = size(Im);
Im = not(Im);
% imshow(Im);
N=64;
w=[0 0.25 0.5 0.75 1 0.75 0.5 0.25 0];
% WPFL1=zeros(1,8);
% WPFR1=zeros(1,8);
% WPFU1=zeros(1,8);
% WPFD1=zeros(1,8);
% WPFL2=zeros(1,8);
% WPFR2=zeros(1,8);
% WPFU2=zeros(1,8);
% WPFD2=zeros(1,8);
%%左--右方向
for i=1:8
I=8*(i-1)+4;
LengthL1(1:8)=0;
LengthR1(1:8)=0;
LengthL2(1:8)=0;
LengthR2(1:8)=0;
for k=-3:4
IndexLeft = not(Im(I+k,1:N-1)).*Im(I+k,2:N);
IndexRight = not(Im(I+k,2:N)).*Im(I+k,1:N-1);
PosL = find(IndexLeft==1);
PosR = find(IndexRight ==1);
%从左到右第一次遇到黑像素
if(size(PosL,2)>=1)
LengthL1(k+4) = PosL(1);
else
LengthL1(k+4) = 64;
end
%从右到左第一次遇到黑像素
if(size(PosR,2)>=1)
LengthR1(k+4) = 64-PosR(end);
else
LengthR1(k+4) = 64;
end
%第二次遇到黑像素
if(size(PosL,2)>=2)
LengthL2(k+4) = PosL(2);
else
LengthL2(k+4) = 64;
end
if(size(PosR,2)>=2)
LengthR2(k+4) = 64-PosR(end-1);
else
LengthR2(k+4)=64;
end
end
WPFL1(i)= sum(w(1:8).*LengthL1);
WPFR1(i)= sum(w(1:8).*LengthR1);
WPFL2(i)= sum(w(1:8).*LengthL2);
WPFR2(i)= sum(w(1:8).*LengthR2);
end
%上--下方向
for i=1:8
LengthU1(1:8)=0;
LengthD1(1:8)=0;
LengthU2(1:8)=0;
LengthD2(1:8)=0;
J=8*(i-1)+4;
for k=-3:4
IndexUp =(not(Im(1:N-1,J+k)).*Im(2:N,J+k))';
IndexDown =(not(Im(2:N,J+k)).*Im(1:N-1,J+k))';
PosU = find(IndexUp==1);
PosD = find(IndexDown==1);
%从上到下第一次遇到黑像素
if(size(PosU,2)>=1)
LengthU1(k+4) = PosU(1);
else
LengthU1(k+4) = 64;
end
%从下到上第一次遇到黑像素
if(size(PosD,2)>=1)
LengthD1(k+4) = 64-PosD(end);
else
LengthD1(k+4) = 64;
end
%第二次遇到黑像素
if(size(PosU,2)>=2)
LengthU2(k+4) = PosU(2);
else
LengthL2(k+4) = 64;
end
if(size(PosD,2)>=2)
LengthD2(k+4) = 64-PosD(end);
else
LengthD2(k+4) = 64;
end
end
WPFU1(i)= sum(w(1:8).*LengthU1);
WPFD1(i)= sum(w(1:8).*LengthD1);
WPFU2(i)= sum(w(1:8).*LengthU2);
WPFD2(i)= sum(w(1:8).*LengthD2);
end
P=horzcat(WPFL1,WPFR1,WPFU1,WPFD1,WPFL2,WPFR2,WPFU2,WPFD2);
P=P/(N*N);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -