Python批量提取图像灰度共生矩阵(GLCM)、支持批量处理、任意图像格式

目录

一、介绍

二、实现

1、特征计算

2、批量处理

3、结果


一、介绍

灰度共生矩阵(Grey Level Co-occurrence Matrix)也叫做空间灰度级依赖矩阵(SGLDM),它是一种基于统计的纹理特征提取的方法。

一般包括四个方向:

  • (a,b)=(1,0),像素对是水平的,即0度扫描;
  • (a,b)=(0,1),像素对是垂直的,即90度扫描;
  • (a,b)=(1,1),像素对是右对角线的,即45度扫描;
  • (a,b)=(-1,1),像素对是左对角线,即135度扫描。

一般包括8个常用特征:均值、方差、角二阶矩、熵、对比度、相关性、Homogeneity、Dissimilarity

二、实现

1、特征计算

python 复制代码
# 建立特征函数索引
indexs = {0:calculate_gray_co_occurrence_matrix_entropy, # 熵
          1:calculate_gray_co_occurrence_matrix_mean, # 均值
          2:calculate_gray_co_occurrence_matrix_variance, # 方差
          3:calculate_gray_co_occurrence_matrix_homogeneity, # homogeneity
          4:calculate_gray_co_occurrence_matrix_contrast, # contrast
          5:calculate_gray_co_occurrence_matrix_dissimilarity, # Dissimilarity
          6:calculate_gray_co_occurrence_matrix_energy, # 能量or角二阶
          7:calculate_gray_co_occurrence_matrix_correlation, # 相关性
          8:calculate_gray_co_occurrence_matrix_autocorrelation # 自相关性
          }

2、批量处理

其中 .jpg 修改为自己文件的后缀

python 复制代码
if __name__=="__main__":
    path = r"./data"
    save_ = r"./texture"

    file_list = os.listdir(path)
    for i in file_list:
        if os.path.splitext(i)[1] == ".jpg":
            print("正在处理文件:", i)

            file_path = path + "/" + i
            glcm = glcm_features(file_path)
            print(glcm.shape)
            utils.save_img(glcm, save_+"/" + os.path.splitext(i)[0] +'.tif')

3、结果

我们提取下面的图像:

只提取均值这个特征:

代码链接:Python批量提取图像灰度共生矩阵(GLCM)、支持批量处理、任意图像格式

相关推荐
IT_陈寒2 分钟前
Redis批量删除的大坑,差点让我加班到天亮
前端·人工智能·后端
AI搅拌机9 分钟前
LoRA训练实战41:用QwenImageEdit2511训练“灵魂画手”风格LoRA,保姆级全流程教程,一学就会!
人工智能·ai作画
无风听海11 分钟前
Python类型守卫深度解析
python
xierui12312314 分钟前
探索型 AI 与交付型 AI:两种截然不同的技术物种
大数据·人工智能·效率工具·ai工具·大模型应用·aiagent·agent架构
白羊by15 分钟前
Softmax 激活函数详解:从数学原理到应用场景
网络·人工智能·深度学习·算法·损失函数
踏着七彩祥云的小丑15 分钟前
AI——初识Dify
人工智能·ai
VBsemi-专注于MOSFET研发定制24 分钟前
高端牧光互补储能电站功率链路设计实战:效率、可靠性与系统集成的平衡之道
网络·人工智能
HyperAI超神经28 分钟前
教程汇总丨开源小模型综合智能水平追平GPT-5,一站测评Qwen 3.5/Gemma 4等热门模型
人工智能
观远数据30 分钟前
跨部门指标统一治理:如何消除数据口径歧义提升决策效率
大数据·人工智能·数据挖掘·数据分析
人机与认知实验室30 分钟前
如何用三维矩阵建模态势感知与势态知感?
线性代数·矩阵