LBP(局部二值模式)是一种用来描述图像局部纹理特征的算子,具有旋转不变性和灰度不变性等显著优点。

(1) 原始LBP

原始的LBP算子定义在一个3*3的窗口内,以窗口中心像素为阈值,与相邻的8个像素的灰度值比较,若周围的像素值大于中心像素值,则该位置被标记为1,否则标记为0.可以得到一个8位二进制,将这个值作为窗口中心像素点的LBP值,来反映这个3*3区域的纹理信息。LBP记录的是中心像素点与领域像素点之间的差值,所以当光照变化引起像素灰度值同增同减时,LBP变化并不明显,可以认为LBP对于光照变化不敏感,LBP检测的仅仅是图像的纹理信息,因此,进一步还可以将LBP做直方图统计,这个直方图可以用来作为纹理分析的特征算子。

数学公式:

其中,p表示3*3窗口中除中心像素点外的第p个像素点,I(c)表示中心像素点的灰度值,I(p)表示领域内第p个像素点的灰度值。

(2) 圆形LBP

为了适应不同尺度的纹理特征,并达到灰度和旋转不变性的要求,将3*3领域扩展到任意领域,并用圆形领域代替正方形领域,改进后的LBP算子在半径为R的圆形领域内有任意多个像素点。假设半径为R的圆形区域内含有P个采样点的LBP算子:

p=16,R=2时,圆形边界上的点可能不是整数或者正好落在某个格子内,可能位于交界处,可以使用双线性插值法来计算该点的像素值。

其中,p表示圆形区域中总计P个采样点中的第p个采样点,I(c)表示中心像素的灰度值,I(p)表示圆形边界像素点中第p个点灰度值。总共有p个点在圆形边界上,点坐标计算:

(3) 旋转不变LBP

从原始LBP的定义来看,LBP算子是灰度不变的,但不是旋转不变的,图像旋转的话就会得到不同的LBP值。提出具有旋转不变性的LBP算子,即不断旋转圆形领域得到一系列初始定义的LBP值,取其最小值作为该领域的LBP值。

在于对LBP的结果进行二进制编码,并做循环位移,取所有结果中最小的那个值:

def value_rotation(num): value_list = np.zeros((8), np.uint8) temp = int(num) value_list[0] = temp for i in range(7): temp = ((temp << 1) | (temp / 128)) % 256 value_list[i+1] = temp return np.min(value_li

(4) 均匀模式LBP

对于半径为R的圆形区域内含有P个采样点,会有2P-1种模式。很显然,随着采样点数P的增加,二进制模式的种类是呈指数趋势增长的。尽可能少且具有代表性的特征,因此需要对LBP得到的二进制模式种类进行降维,使用更少的数据量来最好地表示图像的信息,这种降维的方法就是uniform LBP。限制一个二进制序列从0到1或1到0的跳变次数不超过2次。模式数量从原来的2P种减少为P(P-1)+2种,其中P表示领域集内的采样点数。

目的就是统计二进制数的跳变次数,跳变次数小于等于2,则各自代表一类,跳变次数大于2的所有情况归为一类。

(5) 均匀模式+旋转不变模式LBP

先计算跳变次数:

跳变次数小于等于2,则各自代表一类,跳变次数大于2的所有情况归为一类。得到的结果设为LBPuniP,R,再对其二进制编码做循环移位,求出最小值。

(九) LBP特征提取相关推荐

  1. pythonlbp纹理提取_Python + OpenCV 实现LBP特征提取的示例代码

    背景 看了些许的纹理特征提取的paper,想自己实现其中部分算法,看看特征提取之后的效果是怎样 运行环境 Mac OS Python3.0 Anaconda3(集成了很多包,浏览器界面编程,清爽) 步 ...

  2. 用matlab提取lbp特征,求教大神给解释一下LBP特征提取每部分程序是干什么的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function X1 = LBP(Resimage) % Returns a rotation invariant LBP (uniform patte ...

  3. lbp特征提取算法 知乎_计算机视觉基础-图像处理: LBP特征描述算子

    1 简介 LBP指局部二值模式(Local Binary Pattern),是一种用来描述图像局部特征的算子,具有灰度不变性和旋转不变性等显著优点.LBP常应用于人脸识别和目标检测中,在OpenCV中 ...

  4. lbp matlab程序,求教大神给解释一下LBP特征提取每部分程序是干什么的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function X1 = LBP(Resimage) % Returns a rotation invariant LBP (uniform patte ...

  5. lbp特征提取算法 知乎_Hog,SIFT以及LBP这三种特征有什么不同?

    SIFT.HOG.LBP,这三者都属于局部特征. 一.三者原理上的区别 1.SIFT:Scale-Invariant Feature Taransform,尺度不变特征变换.尺度空间的极值检测:搜索所 ...

  6. lbp特征提取算法 知乎_图像-LBP特征描述算子-人脸检测

    2.1 简介 LBP指局部二值模式(Local Binary Pattern),是一种用来描述图像局部特征的算子,具有灰度不变性和旋转不变性等显著优点.LBP常应用于人脸识别和目标检测中,在OpenC ...

  7. LBP特征提取算子光照不变性和旋转不变性的具体解释与detectMultiScale参数说明【DataWhale学习记录】

    零 前言 LBP曾广泛应用于人脸检测以及人脸识别应用中,但在深度学习和卷积神经网络迅猛发展的今天,以LBP为特征的检测以及识别算法并不具有竞争力,但是作为学习案例还是很有借鉴意义的. 本文的重点部分是 ...

  8. (九)特征提取之主成分分析(PCA)

    主成分分析(PCA) 一.PCA算法是如何实现的? 简单来说,就是将数据从原始的空间中转换到新的特征空间中,例如原始的空间是三维的(x,y,z),x.y.z分别是原始空间的三个基,我们可以通过某种方法 ...

  9. 特征提取算法(1)——纹理特征提取算法LBP

    模式识别中进行匹配识别或者分类器分类识别时,判断的依据就是图像特征.用提取的特征表示整幅图像内容,根据特征匹配或者分类图像目标. 常见的特征提取算法主要分为以下3类: 基于颜色特征:如颜色直方图.颜色 ...

  10. LBP算法(人脸识别特征提取)

    LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的.LBP方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题.不过相比于特征脸方法,LBP的识别 ...

最新文章

  1. webpack 使用别名(resolve.alias)解决scss @import相对路径导致的问题
  2. ARM中Bus Error的测试
  3. 【收藏】生产订单业务流程
  4. python相关性分析特征过滤_Python相关性分析
  5. 为什么没人种植金丝楠木?
  6. The Most Important Skill for Software Architects
  7. matlab gui期末设计,MATLABGUI课程设计期末大作业湖南理工学院
  8. Struts迭代器(iterator)遍历List常用的4种例子 - 冯世杰
  9. rpm数据库异常问题总结
  10. char、int、long、float、double等在64位下占多少字节
  11. 高等数学(第七版)同济大学 习题5-2 个人解答
  12. 杨柳青镇cad_CAD制图岗位职责|CAD制图工作内容 - 职业圈
  13. 大厂必背 MySQL优化面试题
  14. java图形界面美化_在Java中使用图片实现GUI的美化.doc
  15. 虚拟偶像的实时捕捉方案研究
  16. 软路由服务器安装在哪个位置,软路由安装教程_软路由安装注意事项
  17. 12306智能刷票,订票
  18. matlab 高级绘图函数
  19. Nvidia jetson tx2 ubuntu16.04插入128GB内存卡报错:Unable to access/mount “128 GB Volume”
  20. QGIS编译---QGIS2.14.16 + Qt4.8.6 + VS2010 ---32位版本

热门文章

  1. 运动计步app开发的功能分析
  2. MATLAB电路模拟——微分运算
  3. 水系图一般在哪里找得到_Nano Energy:铝离子扩层V2O5nH2O用于高性能水系锌离子电池...
  4. unity 字体 素材_unity中文字体制作工具
  5. 2%用计算机怎么算,五险一金计算器的使用方法
  6. 莫烦python_莫烦python教学网站
  7. Ubuntu环境下,反编译工具Apktool,Dex2jar,jd-gul,luyten安装使用
  8. 反编译工具Luyten地址
  9. 谷歌Adblock Plus 广告拦截插件-屏蔽百度热搜和推荐(附网盘下载地址)
  10. 音视频处理、图像处理、图像识别和字符识别全能库JavaCV完整教程(包含完整JavaCV入门、JavaCV实战、ffmpeg、opencv和tesserac教程)