目录
一、介绍
二、实现
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、特征计算
# 建立特征函数索引
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, # homogeneity4:calculate_gray_co_occurrence_matrix_contrast, # contrast5:calculate_gray_co_occurrence_matrix_dissimilarity, # Dissimilarity6:calculate_gray_co_occurrence_matrix_energy, # 能量or角二阶7:calculate_gray_co_occurrence_matrix_correlation, # 相关性8:calculate_gray_co_occurrence_matrix_autocorrelation # 自相关性}
2、批量处理
其中 .jpg 修改为自己文件的后缀
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 + "/" + iglcm = glcm_features(file_path)print(glcm.shape)utils.save_img(glcm, save_+"/" + os.path.splitext(i)[0] +'.tif')
3、结果
我们提取下面的图像:
只提取均值这个特征:
代码链接:Python批量提取图像灰度共生矩阵(GLCM)、支持批量处理、任意图像格式