📄 weight_strokecrosscountingfeature.m
字号:
function P = Weight_StrokeCrossCountingFeature(im)
%加权笔画密度特征
%分别从水平,垂直,左右对角线四方向假想一组网线来扫描汉字图像,并考虑了其领域特征的加权贡献。
%%
Im= im(:,:,1);
% [NumRows,NumCols] = size(Im);
Im = not(Im);
N=64;
w=[0 0.25 0.5 0.75 1 0.75 0.5 0.25 0];
WCCH=zeros(1,8);
WCCV=zeros(1,8);
WCCL=zeros(1,16);
WCCR=zeros(1,16);
%%水平方向
for i=1:8
I=8*(i-1)+4;
for k=-3:4
WCCH(i)=WCCH(i)+sum(Im(I+k,1:N-1).*not(Im(I+k,2:N)))*w(k+4)/2;
end
end
%%垂直方向
for j=1:8
J=8*(j-1)+4;
for k=-3:4
WCCV(j)=WCCH(j)+sum(Im(1:N-1,J+k).*not(Im(2:N,J+k)))*w(k+4)/2;
end
end
M=[];
NN=[];
MM=[];
%%右对角线
for i=1:8
I=8*(i-1)+4;
for k=-3:4
Sum1=0;
Sum2=0;
for j=1:N-8*(i-1)-5-k
% M = [M I+k+j+1]
Sum1 =Sum1+Im(I+k+j,j)*not(Im(I+k+j+1,j+1));
Sum2 =Sum2+Im(j,I+k+j)*not(Im(j+1,I+k+j+1));
% M=[M I+k+j];
% NN=[NN j];
% MM=vertcat(M,NN);
end
WCCL(i)=WCCL(i)+Sum1*w(k+4)/2;
WCCL(i+8)=WCCL(i+8)+Sum2*w(k+4)/2;
end
end
%%左对角线
% M=[];
for i=1:8
I=8*(i-1)+4;
for k=-3:4
Sum1=0;
Sum2=0;
for j =1:N-8*(i-1)-5-k
% M= [M N-I-k-j-1];
Sum1 =Sum1+Im(j,N-I-k-j+1)*not(Im(j+1,N-I-k-j));
Sum2 =Sum2+Im(I+k+j,N-j+1)*not(Im(I+k+j+1,N-j));
M=[M j];
NN=[NN N-I-k-j+1];
MM=vertcat(M,NN);
end
WCCR(i)=WCCR(i)+Sum1*w(k+4)/2;
WCCR(i+8)=WCCR(i+8)+Sum2*w(k+4)/2;
end
end
P = horzcat(WCCH,WCCV,WCCL,WCCR);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -