一、纹理特征提取概述
纹理特征是指用于表征物体表面纹理的某些可描述的属性,可用于匹配和分类。对于纹理特征提取,主要可以分为三个部分:预处理、特征提取和特征选择。
1、预处理
预处理是对于纹理图像进行处理,以提高特征提取的准确率。主要包括图像增强和去噪。图像增强可以通过灰度拉伸、直方图等方式进行增强。去噪可采用均值滤波、中值滤波等方式对图像进行去噪。
2、特征提取
特征提取即从纹理图像中提取有用的特征向量。在纹理特征提取中,一般常见的特征有灰度共生矩阵(GLCM)、灰度差异矩阵(GDM)、灰度值直方图(Histogram of Gradients, HOG)和局部二值模式(LBP)等。
3、特征选择
特征选择主要是从大量的高维特征中选择最有意义的特征,以提高算法的性能。可采用相关系数、卡方检验、互信息等方式进行特征选择。
二、灰度共生矩阵(GLCM)
灰度共生矩阵是依据一个像素点及其周围像素点的灰度值相互关系,构造一个概率矩阵。该概率矩阵可以用来描述纹理特征。可以通过如下代码实现灰度共生矩阵的特征提取:
import numpy as np from skimage.feature import greycomatrix, greycoprops from skimage import data # 读入灰度图像 image = data.astronaut() image = np.mean(image, axis=2) # 计算水平方向的灰度共生矩阵 g = greycomatrix(image, distances=[1], angles=[0], levels=256, symmetric=True, normed=True) # 计算灰度共生矩阵的各项统计特征 contrast = greycoprops(g, 'contrast') homogeneity = greycoprops(g, 'homogeneity') ASM = greycoprops(g, 'ASM') energy = greycoprops(g, 'energy') correlation = greycoprops(g, 'correlation')
三、局部二值模式(LBP)
局部二值模式是一种计算图像纹理特征的方法。其具体步骤为:将像素点及其周围像素点与中心像素点比较,若周围像素点的灰度值大于等于中心点的灰度值,则将该像素点的值赋为1,否则为0。然后将该二进制序列转化为十进制数作为该像素点的纹理特征值。可以通过如下代码实现局部二值模式的特征提取:
import numpy as np from skimage.feature import local_binary_pattern from skimage import data # 读入灰度图像 image = data.astronaut() image = np.mean(image, axis=2) # 采用等价模式的局部二值模式 lbp = local_binary_pattern(image, P=8, R=1, method='uniform') # 统计每个像素值的出现次数 hist, _ = np.histogram(lbp.ravel(), bins=256, range=(0, 255)) # 归一化直方图 hist = hist.astype("float") hist /= (hist.sum() + 1e-7)
四、灰度差异矩阵(GDM)
灰度差异矩阵是用来描述纹理特征的一种方法。其基本思想是计算定长窗口内像素点灰度值差的分布情况,以表征纹理的粗糙度。可以通过如下代码实现灰度差异矩阵的特征提取:
import numpy as np from skimage.feature import greycomatrix, greycoprops from skimage import data # 读入灰度图像 image = data.astronaut() image = np.mean(image, axis=2) # 计算水平方向的灰度差异矩阵 g = greycomatrix(image, distances=[1], angles=[0], levels=256, symmetric=True, normed=True, diff='yes') # 计算灰度差异矩阵的各项统计特征 contrast = greycoprops(g, 'contrast') homogeneity = greycoprops(g, 'homogeneity') ASM = greycoprops(g, 'ASM') energy = greycoprops(g, 'energy') correlation = greycoprops(g, 'correlation')
五、特征选择
在特征提取后,由于得到的特征向量可能维度较高,因此需要进行特征选择,以提高算法的性能。可采用相关系数、卡方检验、互信息等方式进行特征选择。
六、总结
本文主要介绍了纹理特征提取的基本概念及常用方法,包括灰度共生矩阵、局部二值模式和灰度差异矩阵等。同时也介绍了特征选择的一些方法。纹理特征提取在图像识别、图像匹配等方面有着广泛的应用。