热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LBP+DLBP+STLBP+VLBP

纹理是物体表面的固有特征之一,可认为是灰度(颜色)在空间以一定的形式变化而产生的图案(模式).LBP(LocalBina


纹理是物体表面的固有特征之一,可认为是灰度(颜色)在空间以一定的形式变化而产生的图案(模式).

LBP(Local Binary Pattern, 局部二值模式)是一种用来描述图像局部纹理特征的算子;它的作用是进行特征提取,提取图像的局部纹理特征.

原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,

若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0.

3*3领域内的8个点可产生8bit的无符号数,即得到该窗口的LBP值,并用这个值来反映该区域的纹理信息.

如下图所示,r = 3,p = 8.

计算公式如下:

gc为中心像素点,gp为邻域像素点.

LBP纹理特征向量,一般以图像的分块LBP直方图表示,具体计算步骤如下:

1).将图像划分为N*N的图像子块,计算每个子块中每个像素的LBP值.

2).对每个子块进行直方图统计,得N*N图像子块的直方图.

3).利用N*N个子块的直方图,描述该图像的纹理特征.

参考文献 Background Subtraction Based on a Combination of Texture,Color and Intensity ICSP 2008

文献在LBP的基础上,提出了DLBP特征 Double Local Binary Pattern.

LBP的缺点:

1).It cannot differeniate between ascending and homogeneous.

无法区分邻域像素点与中心像素点相等,或者邻域像素点大于中心像素点两种情况,因此,这两种情况所得都是s(u) = 1.

2).It is sensitive to noise due its threshold schem.

DLBP主要是为了解决LBP的缺点而提出的,表式形式如下:

当LBP+ = 0 且 LBP- = 0,表示邻域像素点与中心像素点相同;

当LBP+ = 1 且 LBP- = 0时,表示邻域像素点大于中心像素点;

当LBP+ = 0 且 LBP- = 1时,表示邻域像素点小于中心像素点;

从而可以区分邻域像素点与中心像素点的三种情况.

引入参数n,来改善像素点值轻微变化对LBP的影响.文中取n = 4.

LBP和DLBP的比较示例图如下:

(b),(c),(d)利用DLBP更能表述图像的特征.(a)中DLBP和LBP的表描结果是一样的.

参考文献 Dynamic Background Modeling and Subtraction Using Spatio-Temporal Local Binary Patterns  ICIP 2008

STLBP spatio-temporal local binary patterns

文献中提出STLBP的目的是为了将空间上的纹理信息和时间上的运动信息结合,便于建立更准确的背景模型.

其思想是将当前帧中像素点的LBP和前一帧中对应像素点的LBP,按一定权值结合起来.

权值大小的来衡量,前一帧图像对后一帧图像的影响.

A small value is sufficient for scenes which have small changes,

whereas a larger value is required in the scenes which have strong changes.  

参考文献 Dynamic Texture Recognition Using Volume Local  Binary Patterns   Workshop on Dynamical Vision 2007

VLBP  volume local binary patterns

VLBP与STLBP相比,不同之处在于它同时考虑前p帧图像和后p帧图像的LBP特征.

因而,提取VLBP特征是需要事先获取当前图像序列的前后图像序列.

文献中,还进一步说明了,如何将VLBP特征转换为Rotation Invariant VLBP.

若具体应用需要Rotation Invariant VLBP,其转换过程请参考原文. 


推荐阅读
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • [论文笔记] Crowdsourcing Translation: Professional Quality from Non-Professionals (ACL, 2011)
    Time:4hoursTimespan:Apr15–May3,2012OmarZaidan,ChrisCallison-Burch:CrowdsourcingTra ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
author-avatar
六零后女人_731
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有