资源简介

包括计算共生矩阵、对共生矩阵归一化、对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数、求能量、熵、惯性矩、相关的均值和标准差作为最终8维纹理特征

资源截图

代码片段和文件信息

%**************************************************************************
%                   图像检索——纹理特征
%基于共生矩阵纹理特征提取,d=1θ=0°45°90°135°共四个矩阵
%所用图像灰度级均为256
%参考《基于颜色空间和纹理特征的图像检索》
%function : T=Texture(Image) 
%Image    : 输入图像数据
%T        : 返回八维纹理特征行向量
%**************************************************************************
function T = Texture(Image)
% Image = imread(‘E:\1\3.tiff‘);
% [MNO] = size(Image);
M = 256; 
N = 256;

%--------------------------------------------------------------------------
%1.将各颜色分量转化为灰度
%--------------------------------------------------------------------------
Gray = double(0.3*Image(::1)+0.59*Image(::2)+0.11*Image(::3));

%--------------------------------------------------------------------------
%2.为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级
%--------------------------------------------------------------------------
for i = 1:M
    for j = 1:N
        for n = 1:256/16
            if (n-1)*16<=Gray(ij)&Gray(ij)<=(n-1)*16+15
                Gray(ij) = n-1;
            end
        end
    end
end

%--------------------------------------------------------------------------
%3.计算四个共生矩阵P取距离为1,角度分别为04590135
%--------------------------------------------------------------------------
P = zeros(16164);
for m = 1:16
    for n = 1:16
        for i = 1:M
            for j = 1:N
                if j                    P(mn1) = P(mn1)+1;
                    P(nm1) = P(mn1);
                end
                if i>1&j                    P(mn2) = P(mn2)+1;
                    P(nm2) = P(mn2);
                end
                if i                    P(mn3) = P(mn3)+1;
                    P(nm3) = P(mn3);
                end
                if i                    P(mn4) = P(mn4)+1;
                    P(nm4) = P(mn4);
                end
            end
        end
        if m==n
            P(mn:) = P(mn:)*2;
        end
    end
end

%%---------------------------------------------------------
% 对共生矩阵归一化
%%---------------------------------------------------------
for n = 1:4
    P(::n) = P(::n)/sum(sum(P(::n)));
end

%--------------------------------------------------------------------------
%4.对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数
%--------------------------------------------------------------------------
H = zeros(14);
I = H;
Ux = H;      Uy = H;
deltaX= H;  deltaY = H;
C =H;
for n = 1:4
    E(n) = sum(sum(P(::n).^2)); %%能量
    for i = 1:16
        for j = 1:16
            if P(ijn)~=0
                H(n) = -P(ijn)*log(P(ijn))+H(n); %%熵
            end
            I(n) = (i-j)^2*P(ijn)+I(n);  %%惯性矩
           
            Ux(n) = i*P(ijn)+Ux(n); %相关性中μx
            Uy(n) = j*P(ijn)+Uy(n); %相关性中μy
        end
    end
end
for n = 1:4

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3879  2008-01-17 11:39  纹理特征的提取\Texture.m

     目录          0  2010-04-22 09:47  纹理特征的提取

----------- ---------  ---------- -----  ----

                 4097                    3


评论

共有 条评论