这篇文章给大家分享的是有关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方法
LBP基本特征的提取
1.先奖图片转为灰度图
2.获取图片的宽度和高度
3.创建一个空的输出图像,大小是原来的宽度高度减2,因为3*3的算法最两边是算不到的,所以我们用减2的大小。
4.根据源图的值计算LBP
5.输出图像
然后我们看一下输出的结果
上图基本特征全部显示了出来,效果还是不错的。
感谢各位的阅读!关于“C++ OpenCV特征提取之如何实现LBP特征提取”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。