MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > Haralick纹理特征提取工具箱

Haralick纹理特征提取工具箱

资 源 简 介

该项目是专为MATLAB环境开发的图像纹理分析工具包,核心在于实现灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM)的构建及其配套的Haralick纹理特征提取。 其核心功能逻辑首先通过对输入的二维灰度图像进行空间统计,计算在特定距离(d)和特定方向(theta,通常涵盖0°、45°、90°、135°)上像素对的共生概率,从而生成四个方向的灰度共生矩阵。 在此基础上,该工具箱完整实现了Haralick在1973年提出的14种描述图像纹理特征的统计量,包括: 角二阶矩

详 情 说 明

Haralick Texture Features MATLAB Toolbox v0.1b

项目介绍

Haralick Texture Features MATLAB Toolbox 是一个专门用于图像纹理分析的工具包。纹理是图像处理和计算机视觉中的核心特征之一,反映了图像中像素空间分布的模式、属性及其排列关系。本工具箱基于 Haralick 在 1973 年提出的经典纹理分析理论,通过计算灰度共生矩阵(Gray-Level Co-occurrence Matrix, GLCM)来量化描述图像的局部模式和宏观结构。该工具适用于医学影像识别、遥感图像分类、材料表面缺陷检测等需要精密纹理量化的科研与工程领域。

功能特性

  1. 自动化的图像预处理:支持彩色图像转灰度处理,并提供受控的灰度级量化功能,以平衡计算效率与纹理特征的表达能力。
  2. 多方向共生矩阵计算:支持 0°、45°、90°、135° 四个经典方向的 GLCM 构建。
  3. 完整的 Haralick 特征集:实现了全部 14 种 Haralick 统计特征,涵盖了能量、对比度、相关性、熵以及各种基于概率分布的信息测度。
  4. 统计聚合分析:程序会自动计算不同方向特征的均值与标准差,用于评估纹理的各向同性或各向异性。
  5. 结果可视化:提供直观的终端数据输出报表以及基于热力图的 GLCM 空间分布可视化展示。

使用方法

  1. 环境配置:将代码脚本放置在 MATLAB 工作路径下。
  2. 数据准备:代码默认生成一个基于正弦和余弦函数合成的示例纹理图像。用户可以修改主程序入口,使用 imread 函数通过绝对路径或相对路径加载自定义图像。
  3. 参数调整:
- 修改变量 d 以调整计算纹理的像素距离(默认为 1)。 - 修改 levels 以调整灰度量化等级(默认为 16,提高此值可增加细节,但会成倍增加计算开销和内存占用)。
  1. 运行程序:在 MATLAB 命令行窗口运行主函数,程序将依次执行图像量化、GLCM 构建、特征提取,最终弹出可视化图形窗口并输出结果表格。

系统要求

  1. 软件环境:MATLAB R2016a 或更高版本。
  2. 基础函数支持:程序核心逻辑为原生 MATLAB 语言实现,最小化了对外部工具箱的依赖,但建议安装 Image Processing Toolbox 以获得更好的图像读取和基础处理支持。
  3. 硬件建议:对于大规模图像或高灰度级(如 levels > 64)计算,建议配置 8GB 以上内存。

逻辑实现与细节分析

图像预处理算法

在提取特征前,程序首先将输入图像转化为 double 类型,并根据设定的灰度级进行线性量化。量化公式采用 img_q = floor((img - min) / (max - min + eps) * (levels - 1)) + 1。这一步通过降低灰度分辨率,能够有效抑制随机噪声,同时使 GLCM 的规模可控,确保特征具有较好的平稳性和泛化能力。

灰度共生矩阵 (GLCM) 的构建

程序采用循环迭代像素对的方式手动实现了 GLCM 的计算。根据设定的角度和距离偏移量(offset),算法统计图像中所有满足特定空间关系的像素对 (i, j) 出现的频次。
  1. 边界检测:算法包含严谨的边界检查逻辑,确保计算时不会访问超出图像范围的像素。
  2. 对称化处理:计算完成后,通过 glcm = glcm + glcm' 将矩阵转为对称矩阵。这意味着统计时不区分参考像素和邻域像素的先后顺序,这是计算 Haralick 特征的标准要求。
  3. 归一化:将频次矩阵除以元素总和,将其转化为概率分布矩阵 P(i, j)。

14 种 Haralick 特征提取逻辑

程序基于归一化的对称 GLCM P(i, j) 计算以下统计量:
  1. 角二阶矩(能量):GLCM 元素的平方和,数值越大表示纹理越均匀平滑。
  2. 对比度:利用像素对差值的平方作为权重进行加权和,反映图像局部的剧烈波动。
  3. 相关性:计算行和列分布的归一化相关程度,使用均值与标准差进行中心化。
  4. 离差平方和(方差):反映 GLCM 中元素分布相对于均值的离散情况。
  5. 逆差距(同质性):权重与像素对距离成反比,反映局部纹理的一致性。
  6. 和平均与和方差:基于边缘分布 px+y 序列计算合并概率的统计特性。
  7. 和熵与熵:基于信息论公式计算分布的混乱程度或不确定性。
  8. 差方差与差熵:基于边缘分布 px-y(像素对差值的概率)衡量纹理的波动规律。
  9. 相关信息测度 1 & 2:基于互信息和条件熵导出的复杂特征,用于描述图像各维度的相关程度。
  10. 最大相关系数:这是最复杂的特征,通过构建矩阵 Q 并通过特征值分解(eig),取第二大特征值的平方根作为纹理度量。

可视化逻辑

主程序通过 subplot 结构创建 2x2 的子图布局,利用 imagesc 和 hot 颜色映射表将四个方向的纹理概率分布可视化。这有助于研究人员直观地观察纹理在不同方向上的能量聚集情况和结构倾向。