opencv学习笔记三十一:LBP特征提取

LBP(local binary pattern)是一种简单,有效的纹理分类的特征提取算法。LBP算子是由Ojala等人于1996年提出的。局部二值模式是一个简单但非常有效的纹理运算符。由于其辨别力强大和计算简单,局部二值模式纹理算子已经在不同的场景下得到应用。LBP最重要的属性是对诸如光照变化等造成的灰度变化的鲁棒性。它的另外一个重要特性是它的计算简单,这使得它可以对图像进行实时分析。

LBP的基本思想是对图像的像素和它周围8个像素进行比较,然后求和。如果中心像素的亮度大于等于他的相邻像素,把他标记为1,否则标记为0。最终可以获取2^8个可能的组合,称为局部二值模式或LBP码。

opencv学习笔记三十一:LBP特征提取_第1张图片

这样做的原理:因为对于一张图片,相邻像素之间的的值是有关系的。因此中心点和相邻像素比较后就能得到一个二进制串,这个二进制串就能很好的表示这个点和相邻像素之间的模式,这个模式就是这个二进制串。这种描述方法就可以很好的捕捉到图像中的细节。

一、基本LBP

#include
using namespace cv;
using namespace std;

Mat src, gray_img;
int main(int arc, char** argv) {             
	src = imread("4.png");
	namedWindow("input", CV_WINDOW_AUTOSIZE);
	imshow("input", src);
	cvtColor(src, gray_img, CV_BGR2GRAY);
	int width =

你可能感兴趣的:(opencv)