图像特征提取之LBP算子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Aoulun/article/details/79379619

LBPLocal Binary Patterns)是一直直接,且行之有效的图像特征提取算子。其基本思想是:对于图中某个像素(i,j),取其一定的邻域,例如3*3。对于邻域内的每个像素(p,q),如果这个像素(p,q)值大于等于中心像素(i,j)值,则将这个(p,q)像素记为1,否则记为0。然后将邻域内所有的1和0,按照一定的顺序,组成2进制串,就构成了中间像素的局部2值特征,或者将此2进制串转换为十进制也可以。注意几点:

1)邻域像素是1,还是0,可以自己定义,例如小于记为1

2)从哪个邻域像素开始组成二进制串也可以自己定

3)邻域大小也可以自己定

4)比较的时候,也可以加阈值,例如高于中心像素20才记为1。

1、合理性

首先,LBP算法对噪声有一定的鲁棒性。

其次,LBP算法在一个极小的邻域内考虑了各个像素的影响,而不是舍弃

再次,对细节有很好的的保留作用

最后,计算方法自由

3、典型应用

一个典型的应用是人脸识别

人脸图像在做LBP变换后,得到的仍然是一幅图像。图像中对应位置的值就是LBP值。那么有了LBP值如何进行识别呢?识别就是将检测到的人脸与数据库中人脸进行比较。比较过程中采用的就是人脸特征。那么如何把LBP值转换为人脸特征,然后进行比对呢?大致过程可以进行如下的描述(大致类似于HoG特征的提取):(人脸检测可以参考我的其他文章,用adaboost实现)

1)对检测到的人脸图像做旋转不变LBP变换;

2)将变换后的图像分成若干个子块,对每个子块统计其LBP直方图;

3)将所有子块的统计直方图连接到一起,例如,直接首尾拼接;

4)通过比较待识别的人脸和数据库人脸,进而实现识别,这种对比的方法有很多种,例如直接进行相似度比较,或者卡方比较等。

5)有时候会借助于SVM来进行识别和分类。



猜你喜欢

转载自blog.csdn.net/Aoulun/article/details/79379619