LBP特征提取算法

LBP特征提取算法
预览:

[原]LBP特征提取算法

2013-5-9阅读1039 评论1

本文的PDF 版本,以及涉及到的所有文献和代码可以到下列地址下载:

1、PDF 版本以及文献:http://download.csdn.net/detail/ty101/5349816

2、原作者的MATLAB 代码:http://download.csdn.net/detail/ty101/5349894 LBP 一种用来描述图像纹理特征的算子,该算子由芬兰奥卢大学的T.Ojala 等人在1996年提出[1],在2002年时,Timo Ojala等人在PAMI 上又发表了一篇关于LBP 的文章[2],该文章非常清楚的阐述了多分辨率、灰度尺度不变和旋转不变、等价模式的改进的LBP 特征。LBP 的核心思想就是:以中心像素的灰度值作为阈值,与他的领域相比较得到相对应的二进制码来表示局部纹理特征。呃,这句话实在有些拗口-_-#还是举例吧,下面我们从最简单的入手,一步一步讲解整个LBP 特征(整个LBP 特征提取流程请看文章最后的appendix )。

l 初级的LBP 计算方法(先撇开多分辨率、灰度尺度不变、旋转不变^_^) 假设我们有一个3*3的窗口,窗口内的值代表每个像素的灰度值,如下所示:

可以看到中心像素点的灰度值为6,我们将这个中心像素点的灰度值与它周围8领域的像素值大小做比较,也就是说我们将7、9、8、7、1、2、5、6这8个数字分别与6做比较,大于6,我们则把右边相应的方格置为1,小于6则置为0。之后我们就得右边的窗口,我们按逆时针方向把这些1和0连起来就得到了所谓的LBP 模式:11110001(注意是二进制的),然后将这个数转换为10进制,也就是241。

Tips:扩展后的LBP 中的窗口形状

上面所说的版本是Timo Ojala在1996年提出的,在2002年的时候Timo Ojala在PAMI 上的文章对上述算法进行了拓展。拓展后的算法可以设置邻域和半径的属性,用P 来表示邻域像素点个数,用R 来表示半径,上面我们描述的初级版本就是P=8,R=1.0

的版本(不考虑插值,后面会详细描述)。下图描述了P ,R 取不同值时的情形:

第1页/共6页 下一页>尾页