• 大小: 4KB
    文件类型: .m
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: Matlab
  • 标签: MATLAB  纹理特征  

资源简介

提取纹理特征(能量、熵、惯性矩、相关性):将原始图像灰度化;计算四个共生矩阵P;对共生矩阵归一化;对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数

资源截图

代码片段和文件信息

%提取纹理特征(能量、熵、惯性矩、相关性)
function [Tt] = get_texture(Image)

%Image = imread(‘D:\UserData\Administrator\实验用图片\林火烟雾.jpg‘);
M=size(Image1); %读取输入图像尺寸
N=size(Image2); 
%figureimshow(Image);
%--------------------------------------------------------------------------
%1.将原始图像灰度化
%--------------------------------------------------------------------------
g = rgb2gray(Image);
%g(::) = 0.3*Image(::1)+0.59*Image(::2)+0.11*Image(::3);

g1=g; %备份原灰度级图像数据
%figureimshow(g1);

for i = 1:M
    for j = 1:N
        for n = 1:256/16
            if (n-1)*16<=g(ij)&g(ij)<=(n-1)*16+15
                g(ij) = n-1;
            end
        end
    end
end

%figure;
%subplot(121);imshow(g1);
%subplot(122);imshow(g);
%--------------------------------------------------------------------------
%计算四个共生矩阵P取距离为1,角度分别为04590135
P = zeros(16164); %初始化灰度共生矩阵256*256,四层:θ=0°45°90°135°
for m = 1:16
    for n = 1:16  %逐一填写16*16共生矩阵各元素值 实际灰度范围为0~15
        for i = 1:M
            for j = 1:N  %遍历整幅图像
             if g(ij)==m-1  %找到图像上灰度为m-1的点
                 if j                     P(mn1) = P(mn1)+1;       %是,则为共生矩阵上相应元素+1
                 end
                 if i                     P(mn2) = P(mn2)+1;
                 end
                 if i                     P(mn3) = P(mn3)+1;
                 end
                 if i1&g(i+1j-1)==n-1  %检查135°像素值
                     P(mn4) = P(mn4)+1;
                 end
             end              
            end
        end
        P(nm1) = P(mn1); %考虑到向量是有方向的,不能简单调换xy坐标即声称等同!
        P(nm2) = P(mn2);
        P(nm3) = P(mn3);
        P(nm4) = P(mn4);
        if m==n
           P(mn:) = P(mn:)*2;
        end
    end
end

%%---------

评论

共有 条评论