⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compcontext.m

📁 这是一个关于matlab程序设计的源代码
💻 M
字号:
%% 用于计算图像改进的形状直方图,输入为图像,重心坐标,已经封装呈函数,可以直接调用
function ContextHist=CompContext(pic,x,y)
pic=double(pic);
[M,N]=size(pic);
DisMax=ceil((ceil(sqrt(M*M+N*N))+1)/2)+1;  %% 计算图像对角线的长度的一半,统计重心到其它字符像素的距离不会超过对角线的长度的一半
Context=zeros(DisMax,360); %% 定义存储统计向量的矩阵
i=x;
j=y;
for p=1:M
    for q=1:N  %% 计算其他点到该点的距离和方向        
        if pic(p,q)~=0   %% 如果图像灰度不为0,则为字符像素,否则不统计
            Dis=round(sqrt((i-p)*(i-p)+(j-q)*(j-q)));  %% 将计算得到的向量距离取整
            if Dis<DisMax  %% 为了避免个别点与重心的距离超过所定义的最大距离,这里加以判断
                if p<i&&q>j  %% 根据字符像素与重心的位置计算角度,逆时针为正
                    Angle=round(180*atan(abs(p-i)/abs(q-j))/pi); 
                end
                if p<i&&q<j
                    Angle=round(180-180*atan(abs(p-i)/abs(q-j))/pi);
                end
                if p>i&&q<j
                    Angle=round(180+180*atan(abs(p-i)/abs(q-j))/pi);
                end
                if p>i&&q>j
                    Angle=round(360-180*atan(abs(p-i)/abs(q-j))/pi);
                end
                if p==i&&q~=j
                    Angle=0;
                end
                if q==j&&p~=i
                    Angle=90;
                end   
                if Dis==0||Angle==360
                    Angle=0;
                end
                Context(Dis+1,Angle+1)=Context(Dis+1,Angle+1)+1;      
            end
        end 
    end
end
ContextHist=sum(Context,2);  %% 计算统计结果向距离轴的投影
%%% 幅度归一化
ContextHist=ContextHist/max(ContextHist);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -