首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LBP原理介绍以及算法实现

(2)LBP旋转不变模式 从 LBP 的定义可以看出,LBP 算子是灰度不变的,但却不是旋转不变的。图像的旋转就会得到不同的 LBP值。...Maenpaa等人又将 LBP 算子进行了扩展,提出了具有旋转不变性的 LBP 算子,即不断旋转圆形邻域得到一系列初始定义的 LBP 值,取其最小值作为该邻域的 LBP 值,图示如下: ?...Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。...因此,Ojala将“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。...如00000000(0次跳变),00000111(只含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。

3.1K20

C++ OpenCV特征提取之扩展LBP特征提取

Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。...因此,Ojala将“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。...如00000000(0次跳变),00000111(只含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。...这使得特征向量的维数更少,并且可以减少高频噪声带来的影响。 旋转不变模式LBP 旋转不变模式LBP能够在图片发生一定的倾斜时也能得到相同的结果。它的定义可以看下(注:此图来自于网络): ?...从 LBP 的定义可以看出,LBP 算子是灰度不变的,但却不是旋转不变的。图像的旋转就会得到不同的 LBP值。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenCV 人脸识别LBPH算法分析

    Figure2:圆形LBP算子 1.2 旋转不变模式 从LBP的定义可以看出,LBP算子是灰度不变的,但却不是旋转不变的,图像的旋转就会得到不同的LBP值。...Maenpaa等人又将LBP算子进行了扩展,提出了具有旋转不变性的LBP算子,即不断旋转圆形邻域得到一系列初始定义的LBP值,取其最小值作为该邻域的LBP值。...Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。...因此,Ojala将“等价模式”定义为:当某个局部二进制模式所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该局部二进制模式所对应的二进制就成为一个等价模式类。...如00000000(0次跳变),00000111(含一次从0到1的跳变和一次1到0的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。

    1.5K10

    LBP特征

    通过LBP特征的定义可以看出,LBP特征对光照变化是鲁棒的 (2)旋转不变LBP特征 从上面可以看出,上面的LBP特征具有灰度不变性,但还不具备旋转不变性,因此研究人员又在上面的基础上进行了扩展,提出了具有旋转不变性的...Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。...因此,Ojala将“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从0到1最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。...如00000000(0次跳变),00000111(只包含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。...这使得特征向量的维数更少,并且可以减少高频噪声带来的影响。

    2K10

    C++ - AVL平衡二叉树

    新增节点以后,只会影响祖先节点的高度,也就是可能会影响部分祖先节点的平衡因子。所以需要更新从新增节点到根节点路径上的平衡因子。 在更新平衡因子的过程中出现不平衡,需要对不平衡子树进行旋转。...因为在旋转成叶子节点期间最多有logn个节点被旋转,而每次AVL旋转耗费恒定的时间,所以删除处理在整体上耗费O(logn)时间。...双向旋转(先左后右)平衡处理LR:由于在a的左子树根节点的右子树上插入节点,a的平衡因子由1增至2,致使以a为根的子树失去平衡,则需进行两次旋转(先左旋后右旋)操作。...双向旋转(先右后左)平衡处理RL:由于在a的右子树根节点的左子树上插入节点,a的平衡因子由-1变为-2,致使以a为根的子树失去平衡,则需进行两次旋转(先右旋后左旋)操作。...//我会写删除的,就在本篇一起写了 private: Node* _pRoot; }; AVL树的插入 像搜索二叉树一样直接插入 新增节点后更新平衡因子 检测平衡因子,若不平衡开始旋转 根据平衡因子对不平衡子树开始向上旋转

    7510

    一种事件相机描述子——DART

    传统图像中常使用描述子(例如BRIEF)等对某个特征点(FAST或Harris角点)等进行描述,进而通过特征匹配的方式进行跟踪,或利用机器学习的方式完成物体分类等任务。...refractory可翻译为倔强,这个滤波可以认为是同一个像素它不会快速产生两次事件。 四、应用 既然有了描述子,我们就可以像传统图像领域使用那样,使用事件相机的描述子。...或者进行物体跟踪,跟踪时涉及到了特征匹配,文章发现DART描述子度旋转、尺度变换、视角变换有一定的鲁棒性: ? 文章中还给出了一种长距离物体跟踪的算法,感兴趣的可以进一步了解。...本推送的作者认为,这种描述子在设计上,并没有考虑旋转、尺度、视角的不变性,而且在匹配时并没有提出新的特征匹配方法所以可以认为还是使用了传统的匹配,并不是严格的对这些变换不敏感。...但本文作者指出,由于这种对数半径和极坐标网格的方式(有一定的区域面积),使这个描述子对尺度、旋转有一定不敏感。

    66910

    一种事件相机描述子——DART

    传统图像中常使用描述子(例如BRIEF)等对某个特征点(FAST或Harris角点)等进行描述,进而通过特征匹配的方式进行跟踪,或利用机器学习的方式完成物体分类等任务。...refractory可翻译为倔强,这个滤波可以认为是同一个像素它不会快速产生两次事件。 四、应用 既然有了描述子,我们就可以像传统图像领域使用那样,使用事件相机的描述子。...或者进行物体跟踪,跟踪时涉及到了特征匹配,文章发现DART描述子度旋转、尺度变换、视角变换有一定的鲁棒性: ? 文章中还给出了一种长距离物体跟踪的算法,感兴趣的可以进一步了解。...本推送的作者认为,这种描述子在设计上,并没有考虑旋转、尺度、视角的不变性,而且在匹配时并没有提出新的特征匹配方法所以可以认为还是使用了传统的匹配,并不是严格的对这些变换不敏感。...但本文作者指出,由于这种对数半径和极坐标网格的方式(有一定的区域面积),使这个描述子对尺度、旋转有一定不敏感。

    38610

    机器学习实战——LBP特征提取

    假设中心像素点的独立性可能有时会造成信息的丢失,但是,其对后续的结果影响很小。...由于最终想要得到的是其二值特征,即知道差值的结果符号即可以,这样结果就不受到到光照的影响,则可以表示成公式4, ?...那么对256种模式都做这种旋转,得到最小的数作为这种模式的旋转不变模式,旋转不变模式一共有36种,如下图所示: ? 那么为什么最后又36种呢?我们写一段暴力枚举的代码试一试就好了: 代码: ? ?...四 等价LBP算法: 所谓等价模式是通过记录跳变方式来进一步降低LBP特征维数,“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该类型保留;跳变次数超过2次时,直接不要...其中P(P-1)为跳变2次的情况,而2位跳变为0次的情况,并没有一种情况是发生了一次跳变。

    3.5K90

    魔幻!奥运女子体操团体赛多队失误,从惯性矩角度分析一下?

    连我们解说员、前女子体操选手何可欣都表示被这次各队的表现吓到了。 ? 其实从上面的动图可以看出,体操动作非常复杂,选手一个项目完成的单个动作由不同的动作连接过渡而成。...体操选手们的动作都会包含各种旋转的动作。 要了解旋转的物理原理,就需要考虑转动惯量。...旋转速度低于没有伸出手臂时的旋转速度。 这时质量不变,变的只是分布方式。 第三步:将手臂收起来,用脚推动旋转后缩离地面,这样是以零扭矩旋转。 第四步:开始旋转时伸出手臂,转的时候收起手臂。...翻上跳板时的动作非常笔直,跳上跳马后她将身体弯曲成一个长枪状,保持屈腿姿势在空中完成了两次后空翻。 什么?翻得太快看不清?来个正面慢镜头看看。 ?...因为体操选手在空中旋转时需要有足够高的角速度,落地前才能完成翻转,否则落地时就会站不起来。 如果要完成两次空翻,采用屈体姿势惯性最低,能够提供最大的旋转速度。 而团身姿势转动惯量最大,角速度最低。

    34220

    对称、群论与魔术(四)——空白扑克卡片的对称性研究

    该操作自身的性质便和Reverse一样,具有两次恢复自身的性质。如是,看起来加上自身,一共有8个对称操作和对应结果。...反过来,群是可以任意构造的,每个规定好生成元,运算法则满足群定义的群都成立,但是却不一定都找得到直接的实例,也却有可能有很多例子与其同构。...除了做triumph魔术时候的疯子洗牌法,我们整理扑克牌的时候都是朝一面整理的,本质上是在消除这一面不对称带来区别的影响,能够整体完成不让人看或看牌正面信息的局部观察结果(背面都一样,没有信息)。...另外,因为扑克牌是只有C2对称性的长方形,所以它不能像狼人杀牌那样随意旋转还能够互相码齐在一起,因为只有C4才有90度任意旋转的对称性,那个要求正方形。...你看,对称性也是就某种特性来说的,不然,你进行了操作,总有某些东西是变的,不可能全都不变,这便是变与不变的相对性。

    1.1K20

    glPushMatrix和glPopMatrix的作用

    现在你调用glPushMatrix,然后再调用一堆平移、旋转代码等等,然后再画图。那些平移和旋转都是基于坐上角为原点进行变化的。...下面对上述结论做进一步的解释: 1)OpenGL中的modelview矩阵变换是一个马尔科夫过程:上一次的变换结果对本次变换有影响,上次modelview变换后物体在世界坐标系下的位置是本次modelview...); glutWireCube( 0.1 );//绿色的下框,代表光源位置 glEnable( GL_LIGHTING ); glPopMatrix(); //消除绘制绿色WireCube时对当前变换矩阵的影响...glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 1.0, 1.0); glPushMatrix(); // 将此句注释掉后可以发现上一次的变换结果对当前变换有影响...清除上一次对modelview矩阵的修改。

    49430

    五形相生

    面心显然是不太合适的,有两次变换的内切球居然相等,要按它缩放,那两次就根本不会变了。最后结论:缩放到棱心距离相等。 旋转 设想中,动画的旋转有两种。...内含四面体的旋转只要把顶点 4 转到朝上即可,旋转角度的余弦值为: ? 旋转轴向量为: ? 旋转效果如下: ? 旋转并放大到棱心距相等后的四面体坐标就是: ? 可以验证棱心距没有变: ?...每个阶段呢又分为三个小阶段:原多面体一边放大一边变透明,同时内含多面体开始连接棱并放大,到原多面体完全透明消失内含多面体连接完成为一小阶段;内含多面体旋转到正位,与此同时面从透明到半透明为第二小阶段;静置一段时间面从半透明变为不透明是第三小阶段...第二个小阶段:旋转调整姿势 首先要定义五个阶段中需要旋转的角度: ? 然后是旋转轴向量: ? 这样就可以定义旋转的动画了: ? 绘图如下: ?...三个小阶段的整合 三个小阶段的整合可以指定不同小阶段的时长,在这里用比例足矣,整体的时间参数还是在 [0, 1] 区间内。这就需要定义一个反向映射时间参数的函数: ?

    1.1K40

    数据处理(四)| 数据增强全解析:从基础概念到实战代码,掌握核心技巧!

    对于⽆⼈机影像⽽⾔,若夜晚数据严重短缺,就可以在已有部分夜晚数据上进⾏风格迁移或光照变换,模拟更多夜间场景,从⽽平衡整体的场景分布。...正如Russakovsky等⼈在ImageNet挑战赛中所发现,数据分布的不平衡是影响模型性能的关键因素之⼀。...对于无人机影像⽽⾔,若夜晚数据严重短缺,就可以在已有部分夜晚数据上进行风格迁移或光照变换,模拟更多夜间场景,从⽽平衡整体的场景分布。...五、常见的数据增强方法在计算机视觉领域,数据增强⽅法⼤致可以分为以下⼏类:⼏何变换类这类⽅法在保持图像语义不变的前提下,改变图像的⼏何属性。...):随机增加或减少图像亮度对⽐度调整(Contrast):改变图像的对⽐度⾊调变换(Hue):调整图像的⾊调饱和度调整(Saturation):改变图像的颜⾊饱和度噪声和模糊⾼斯噪声(Gaussian

    19610

    最新开源!基于LiDAR的位置识别网络OverlapTransformer,RALIROS 2022

    借助激光点云球面投影生成的range image相对于原始点云的yaw角旋转等变性,结合OverlapNetLeg对输入进行高度方向的压缩,生成yaw角旋转等变的特征图。...为将yaw角旋转等变性转换为yaw角旋转不变性,利用了具备对称性的NetVLAD结构,最终输出不受输入点云绕Z轴旋转影响的全局地点识别描述子。...OverlapTransformer的整体结构设计,确保了生成的全局地点识别描述子具备yaw角旋转不变性,这使得本方法对多角度地点识别具有较强的鲁棒性。...range image本身具备yaw角旋转等变性,即一帧激光点云相对于z轴的旋转等价于本帧range image的平移。图2展示了yaw角旋转等变的简单示例。...NetVLAD的输出是不受原始输入点云旋转的影响的,即它的输出具备yaw角旋转不变性。

    62620

    项目实践|如何在较暗环境进行人脸检测?

    如何解决光照问题对人脸检测带来的影响呢? ?...LBP表示方法有一个较为明显的特点,它不容易收到图像整体灰度线性变化的影响。也就是说,当图像由于光线的影响使得整体灰度值发生线性均匀变化时,其LBP特征编码是不变的。...那么在这种情况下,在图片亮度对LBP特征编码无影响。 1.2 主要步骤 使用一个3*3的矩形,处理待判断像素点及其邻域之间的关系。...此后,Maenpaa等人又将 LBP 算子进行了扩展,提出了具有旋转不变性的 LBP 算子,即不断旋转圆形邻域得到一系列初始定义的 LBP 值,取其最小值作为该邻域的 LBP 值。...跳变: 二进制序列中存在从1到0或者0到1的转变,可以称作是一次跳变。下面我们将举例说明跳变次数的计算: ? 2.

    1.1K40

    LBP原理与OpenCV实现

    ---- 灰度不变性基本LBP算法 基本的LBP算法一般被定义为一个 的纹理单元,如图1,其中间的像素点灰度值为 ,其他相邻的8个像素点灰度值分别为 ,以该纹理单位的中心像素点的灰度值为阈值,若其余相邻的...为了对LBP算子进行表示,用函数E表示为中心像素和相邻像素点的联合分布函数: ? 一个中心像素点周围的其它像素点 ? 的坐标 ? 可以表示成: ?...那么对256种模式都做这种旋转,得到最小的数作为这种模式的旋转不变模式,旋转不变模式一共有36种,如下图所示: ? 那么为什么最后又36种呢?...---- 等价LBP算法 所谓等价模式是通过记录跳变方式来进一步降低LBP特征维数,“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该类型保留;跳变次数超过2次时...其中P(P-1)为跳变2次的情况,而2位跳变为0次的情况,并没有一种情况是发生了一次跳变。

    87230

    特征提取方法(二):LBP原理与OpenCV实现

    灰度不变性基本LBP算法 基本的LBP算法一般被定义为一个 的纹理单元,如图1,其中间的像素点灰度值为 ,其他相邻的8个像素点灰度值分别为 ,以该纹理单位的中心像素点的灰度值为阈值,若其余相邻的8个像素点的灰度值大于中心像素点灰度值的阈值...为了对LBP算子进行表示,用函数E表示为中心像素和相邻像素点的联合分布函数: ? 一个中心像素点周围的其它像素点 ? 的坐标 ? 可以表示成: ?...那么对256种模式都做这种旋转,得到最小的数作为这种模式的旋转不变模式,旋转不变模式一共有36种,如下图所示: ? 那么为什么最后又36种呢?...等价LBP算法 所谓等价模式是通过记录跳变方式来进一步降低LBP特征维数,“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该类型保留;跳变次数超过2次时,直接不要...其中P(P-1)为跳变2次的情况,而2位跳变为0次的情况,并没有一种情况是发生了一次跳变。

    4.1K80

    【Flutter 绘制技巧】Path 路径变换

    本文来探讨一下路径的变换,我们知道 Canvas 本身也支持变换,那 Path 的变换有什么必要性吗?和 Canvas 变换又有什么区别呢?如何在一次变换中叠加多种变换效果,如何修改变换中心?...如果对 canvas 进行变换,那么接下来的所有绘制都会在该变换的基础上;如果是对 Path 进行处理,不会影响 canvas 。...比如需要旋转 10° ,如下通过 Matrix4 进行变换,rotationZ 表示沿 Z 轴旋转,也就是说在 XOY 水平面上旋转。可以看出,默认情况下,是以屏幕左上角为变换中心的。...实现思路也非常简单,定义两个偏移的矩阵,在旋转和缩放前,先叠加 center ,让变换中心变为 20,20 。在最后为了不影响结果,在通过 back 矩阵,平移会取即可。...也就是说这个方法会返回一个新的 Matrix4 对象,不会影响调用者的内部数据。 而 multiply 方法,如下所示:是根据矩阵的乘法,来修改自身的数据。

    1.3K10

    如何实现一个 3D 效果的魔方

    我们现在的目标是做一个 3D 效果的魔方,我们找到它的本质,对它解构?那就先写一个立方块!...在科幻小说三体中,云天明讲了三个故事,其中讲到有一个深水王子,无论你在远处看还是近处看,他都一般高,不会受距离增减的影响,不符合我们现实中「近大远小」的透视规律。...(x, y, z, a); } rotate3d 定义了元素在 3D 空间的旋转,旋转相比平移来说,它要多一个指标:「旋转轴,它根据从原点出发的向量 [x, y, z] 来确定旋转轴。」...❝你可以通过围绕各个坐标轴旋转 180 度,来确定原点坐标 ❞ .cube { transform-origin: 100px 100px 100px; } 可以通过对一个立方体的旋转对 rotate3d...1 面对用户,但是翻转了过来 通过 MDN 文档也可以对各个转换有更直观的了解 rotateX | MDN[2] rotateY | MDN[3] rotateZ | MDN[4] transform-origin

    1.1K20

    【CPP】各种各样的树(5)——AVL树

    之前说到在不断地随机插入删除后,二叉树会逐渐变得偏向一边,也就是逐渐右沉,这样的状态会严重地影响二叉树的查找效率。...这里我们要引入的一个新概念就是树的旋转,在这里按照次数分为单旋转和双旋转,按方向分为左旋转和右旋转,如下图,想象树的树枝是活动的,旋转可以很轻松地让树的结点变得平衡。 ?...仔细地理解上面的动图,就会发现树的单旋转其实就是一个交换指针的过程,树的双旋转其实就是对两个结点各自进行了两次方向相反的单旋转。二旋转的方向其实是个对称的过程。然后是声明。 ? ?...最主要的是Fix函数和两种旋转(方向是对称的)。 ? ? ? 旋转本身的编写可能有些混乱,一定要配合图片想象着编写,不要去死记硬背。...一些新的平衡树不再追求这样的条件,它们允许子树有任意的深度,只保证整体的最坏查找时间可控,下次我们来介绍这种平衡树,它是AVL树的一种变种——伸展树(SplayTree)。

    34530
    领券