原始LBP纹理特征提取方法介绍以及代码实现

     在模式识别数字图像处理领域,LBP指局部二值模式,即Local Binary Patterns。最初功能为辅助图像局部对比度,后来提升为一种有效的纹理描述算子,度量和提取图像局部的纹理信息,对光照具有不变性。该描述方法还用于质量检测,人脸图像分析等领域,取得了很好的效果。

    本文详细分析和研究了LBP算法的原理和实现方法。编程的时候采用c++语言,成功实现了提取视频中物体局部纹理特征的功能,并且显示出了很好的处理效果。

1 算法描述

1.1 LBP算法的介绍

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;显然,它的作用是进行特征提取,而且提取的特征是图像的纹理特征,并且是局部的纹理特征; 

芬兰Oulu大学的T.Ojala等人于1996年提出这个算子用来分析图像纹理特征,并且描述了它在纹理分类中的强区分能力。LBP算子定义为一种灰度尺度不变的纹理算子,是从局部邻域纹理的普通定义得来的。 基本思想是:用中心像素的灰度值作为阈值,与它的邻域相比较得到的二进制码来表述局部纹理特征。 在纹理分析方面,LBP算子是最好的纹理描述符之一,它的主要优点有以下几点:通过它的定义可知,LBP算子的灰度尺度不随任何单一变换而变化,因此灰度尺度的鲁棒性好,也就是光照条件下的鲁棒性好;计算速度快。由于它可以通过在小邻域内进行比较操作得到,使得在复杂的实时条件下分析图像成为可能;由于LBP算子是一种无参数(Non-Parametric)的方法,在应用过程中不需要对它的分布进行预先假设。    

    LBP算子是一种灰度范围内的纹理度量,是从一种纹理局部近邻定义中衍生出来,它利用结构法思想分析固定窗口特征,再利用统计法作整体的特征提取。LBP算法一般定义为3×3的窗口,以窗口中心点的灰度值为阈值对窗口内其它像素作二值化处理,然后根据像素不同位置进行加权求和得到该窗口的LBP值。

    LBP算子刚提出来的时候,基本的概念就是图像纹理中某个指定的中心像素

点(gc)及其周围紧邻的8个像素点(g0-g7,)所组成的局部区域。

    基本方法里所用的是经过处理后所得到的灰度图像,每一个像素点的灰度值

是0~255中的一个值。当指定了某一个像素点作为中心像素点(g0)之后(此

时暂不考虑图像边界上的像素点),其周围的8个像素点(g0一g7)的灰度值即可随之确定下来。我们以中心像素点(go)的灰度值作为阈(thresholded value),将gc周边相邻的8个像素点的灰度值与阈值进行比较,如果某相邻像素点的灰度值大于或等于该阈值,则令该像素点的赋值为1;如果相邻像素点的灰度值小于该阈值,则令该像素点的赋值为0。这样,在顺次将周围像素点的灰度值与阈值进行比较之后,就可以得到一个局部二进制的模式(Local Binary Pattern)。接下来,从左上角的第一个像素点(go)开始,将权值2的n次方(n=0,1⋯.7)按照顺时针次序依次赋予周围各个像素点,并与该像素点经过阈值化之后所赋的二进制值相乘。最后,当每一个像素点都依次进行了上述运算之后,将所有8个像素点运算所得的结果相加,即为该中心像素点(gc)的LBP值。现举例说明LBP算子基本方法的计算方式。

    比

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值