xingtaitezheng.m

来自「医学图像的四个纹理特征的matlab程序」· M 代码 · 共 47 行

M
47
字号
%形态特征
F=imread('F:\zuizhongdingwei\1.bmp');
I=logical(F);
[x,y]=size(I);
BW=bwperim(I,8);               %检测对象的边缘跟踪,用于计算周长
%检测垂直方向连续的周长像素点
P1=0;
P2=0;
Ny=0;
for i=1:x
    for j=1;y
        if (BW(i,j)>0)
           P2=j;
           if ((P2-P1)==1)
               Ny=Ny+1;
           end
           P1=P2;
        end
    end
end
%检测水平方向连续的周长像素点
P1=0;
P2=0;
Nx=0;
for j=1:y
    for i=1;x
        if (BW(i,j)>0)
           P2=i;
           if ((P2-P1)==1)
               Nx=Nx+1;
           end
           P1=P2;
        end
    end
end
SN=sum(sum(BW));                    %计算周长像素点的总数
Nd=SN-Nx-Ny;                         %计算奇数码的链码数目
H=max(sum(I));                      %计算高度
W=max(sum(I'));                     %计算宽度
L=sqrt(2)*Nd+Nx+Ny;                 %计算周长
%--------------四个形态特征计算--------------------------------------%
A=bwarea(I)                          %计算面积
C=4*pi*A/(L^2)                       %计算圆度
R=A/(H*W)                            %计算矩形度
E=min(H,W)/max(H,W)                  %计算伸长度

⌨️ 快捷键说明

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