C++ OpenCV特征提取之如何实现LBP特征提取

发布时间:2021-11-26 10:15:21 作者:小新
来源:亿速云 阅读:313

这篇文章给大家分享的是有关C++ OpenCV特征提取之如何实现LBP特征提取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

LBP(Local binary pattern)是一个易理解且有效的局部图像特征,应用很广泛。它具有旋转不变性和灰度不变性的显著的有点。已经广泛的应用于纹理分类、纹理分割、人脸图像分析等领域。

介绍

局部二值模式(Local binary patterns,LBP)是机器视觉领域中用于描述图像局部纹理特征的算子,具有旋转不变性和灰度不变性等显著的优点。它是由T. Ojala, M.Pietikäinen, 和 D. Harwood [1][2]在1994年提出,LBP在纹理分类问题上是一个非常强大的特征;如果LBP与HOG结合,则可以在一些集合上十分有效的提升检测效果。LBP是一个简单但非常有效的纹理运算符。它将各个像素与其附近的像素进行比较,并把结果保存为二进制数。由于其辨别力强大和计算简单,局部二值模式纹理算子已经在不同的场景下得到应用。LBP最重要的属性是对诸如光照变化等造成的灰度变化的鲁棒性。它的另外一个重要特性是它的计算简单,这使得它可以对图像进行实时分析。

代码演示

我们再新建一个项目名为opencv--sift,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

C++ OpenCV特征提取之如何实现LBP特征提取

LBP基本特征的提取

1.先奖图片转为灰度图

    C++ OpenCV特征提取之如何实现LBP特征提取

    2.获取图片的宽度和高度

    C++ OpenCV特征提取之如何实现LBP特征提取

    3.创建一个空的输出图像,大小是原来的宽度高度减2,因为3*3的算法最两边是算不到的,所以我们用减2的大小。

    C++ OpenCV特征提取之如何实现LBP特征提取

    4.根据源图的值计算LBP

    C++ OpenCV特征提取之如何实现LBP特征提取

    5.输出图像

    C++ OpenCV特征提取之如何实现LBP特征提取

    然后我们看一下输出的结果

    C++ OpenCV特征提取之如何实现LBP特征提取

    上图基本特征全部显示了出来,效果还是不错的。

    感谢各位的阅读!关于“C++ OpenCV特征提取之如何实现LBP特征提取”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    推荐阅读:
    1. C++ OpenCV特征提取之如何实现Shi-Tomasi角点检测
    2. C++ OpenCV特征提取之如何实现自定义角点检测器

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    c++ opencv

    上一篇:C++ OpenCV特征提取之如何实现SIFT特征检测

    下一篇:C#如何实现基于Socket套接字的网络通信封装

    相关阅读

    您好,登录后才能下订单哦!

    密码登录
    登录注册
    其他方式登录
    点击 登录注册 即表示同意《亿速云用户服务条款》