码迷,mamicode.com
首页 > 编程语言 > 详细

特征提取算法之LBP

时间:2018-03-07 21:41:06      阅读:508      评论:0      收藏:0      [点我收藏+]

标签:imp   就是   div   简单   rom   plt   wiki   read   光照   

图像特征,图像纹理,图像频域等多种角度提取图像的特征。 

LBP,局部二值模式,局部特征描述算子,具有很强的纹理特征描述能力,具有光照不变性和旋转不变性。用python进行简单的LBP算法实验:

 1 from skimage import data,io
 2 import matplot.pyplot as plt
 3 import cv2
 4 from skimage.feature import local_binary_pattern
 5 image = cv2.imread(Lena.jpg)
 6 plt.subplot(1,2,2)
 7 plt.imshow(image)
 8 plt.show(image)
 9 radius = 1
10 n_points = radius * 8
11 lbp=local_binary_pattern(image,n_points,radius)
12 plt.inshow(lbp)
13 plt.show(lbp)

(1)LBP旋转模式不变性

初始的LBP算法不具有旋转不变性,LBP串的连接顺序是固定的,当图像旋转后LBP就会发生改变,为了保持旋转不变性,制定一个规则,计算所有旋转产生的LBP值,取其中最小的(不知道为什么取最小的而不是最大的)作为该点的LBP值,则无论图像如何旋转,最小值始终是不变的,获得了旋转不变性。代价是增大了算法的计算量。

(2)LBP等价模式

一个LBP算子可以产生多种不同的二进制模式,如果有P个采样点,每个采样点有两种可能的取值,一个有2^P种模式,不利于分析。使用一种等价模式对LBP算子的模式种类进行降维。Ojala对等价模式的定义,即当某个局部二进制模式所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该局部二进制模式所对应的二进制就成为一个等价模式类,其他的归为混合模式类,有两次跳变的等价模式一个有P*(P-1)种,0次跳变的2种,混合模式类1种,将维数从2*P降为P*(P-1)+3种。

对LBP特征向量进行提取的步骤

1)首先将检测窗口划分为16*16的小区域(cell)

2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0.这样,3*3领域内的8个点经过比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;

3)然后计算每个cell的直方图,即每个数字出现的频率,然后对该直方图进行归一化处理

4)最后将得到的每个cell的统计直方图进行连接成一个特征向量,也就是整幅图的LBP纹理特征向量

然后便可以用SVM或者其他机器学习算法进行分类了。

特征提取算法之LBP

标签:imp   就是   div   简单   rom   plt   wiki   read   光照   

原文地址:https://www.cnblogs.com/dyzc/p/8524933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!