本文主要是介绍LBP(局部二值模式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LBP
英文全称是Local Binary Pattern,LBP是一种有效的描述图像局部纹理特征的descriptor,它是由T.Ojala在1994年提出来的,用于纹理特征提取,经过其改善,具备了旋转不变性和灰度不变性(这里所谓的灰度不变性,个人觉得就是单调光照不变性)。如今广泛运用于纹理分类、纹理分割、人脸图像分析等领域。
最初的LBP特征设计
在3x3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3x3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。如下图所示:
上图比较容易理解,最下面的那个LBP值计算就是从3x3窗口的左上角开始,沿顺时针开始组合成一个8位的二进制数,然后转换为10进制数。
LBP的改进和发展
圆形领域内的任意多个像素点
基本的 LBP算子的最大缺陷在于它只覆盖了一个固定半径范围内的小区域,这显然不能满足不同尺寸和频率纹理的需要。为了适应不同尺度的纹理特征,并达到灰度和旋转不变性的要求,Ojala等对 LBP 算子进行了改进,将 3×3邻域扩展到任意邻域,并用圆形邻域代替了正方形邻域,改进后的 LBP 算子允许在半径为 R 的圆形邻域内有任意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个采样点的LBP算子。
降维(等价模式)
当采样点数为P时,那么LBP将产生 2P
这篇关于LBP(局部二值模式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!