纹理特征提取是计算机视觉领域的重要研究内容。本文将详细介绍两种常见的纹理特征提取方法:局部二值模式(LBP)和灰度共生矩阵(GLCM)。
1. 局部二值模式(LBP)
LBP是一种用于描述图像局部纹理特征的算子。它的核心思想是以某个像素点为中心,与其邻域像素点共同计算。具体来说,邻域像素点的选择方法并不唯一,本文选择环形邻域进行说明。窗口中心的像素点作为中心,该像素点的像素值作为阈值。然后将周围8个像素点的灰度值与该阈值进行比较,若周围某像素值大于中心像素值,则该像素点位置被标记为1;反之,该像素点标记为0。如此这样,该窗口的8个点可以产生8位的无符号数,这样就得到了该窗口的LBP值,该值反应了该窗口的纹理信息。
2. 灰度共生矩阵(GLCM)
灰度共生矩阵是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度等综合信息,它是分析图像的局部模式和它们排列规则的基础。
计算纹理特征的第一步,就是将多通道的图像(一般指RGB图像)转换为灰度图像,分别提取出多个通道的灰度图像。一般在一幅图像中的灰度级有256级,从0--255。但在计算灰度共生矩阵时我们并不需要256个灰度级,且计算量实在太大,所以一般分为8个灰度级或16个灰度级。
灰度共生矩阵有多个方向,如0°、45°、90°、135°等。以左上角元素为坐标原点,原点记为(1, 1);以此为基础举例,第四行第二列的点记为(4, 2)。根据方向不同,统计矩阵值的方式也不同。
计算得到单个窗口的灰度共生矩阵的各个方向的矩阵后,就要用这些矩阵计算灰度共生矩阵特征值。一般采用四个最常用的特征来提取图像的纹理特征:能量、对比度、相关度、熵。这些特征值可以反映图像纹理的均匀程度、清晰度、局部灰度相关性以及随机性等信息。
最后,将整个图像的纹理特征值组合成一个纹理特征值矩阵,进而转换成纹理特征图像。本文已对源码进行测试封装,并上传到了笔者的GitHub网站上。感兴趣的读者可以访问以下链接查看具体实现:
https://github.com/upcAutoLang/GLCM-OpenCV