LBP算法提取图片纹理特征图
一、项目目标
采用LBP算法提取图片的纹理特征图。
二、LBP算法原理
LBP指局部二值模式,英文全称:Local Binary Patterns。最初功能为辅助图像局部对比度,并不是一个完整的特征描述子。在数字图像处理和模式识别领域,后来提升为一种有效的纹理描述算子,度量和提取图像局部的纹理信息,对光照具有不变性。LBP有很多变种,或说改进。单纯的LBP记录像素点与其周围像素点的对比信息,或说差异。从图1我们看到,最左边的是原图,标号为example。我们要检测某个像素点的某些信息,在图1中,对于9个方格中中间方格(方格中的数字是像素点灰度值大小),做一个阈值化处理。大于等于中心点像素的,则标记为1,小于的则标记为0。最后将中心像素点周围的11110001二进制数化为十进制数,得到LBP值。
其中进制数11110001的顺序并无硬性要求,只要在同一处理中保持相同的顺序即可。
但是这样的LBP描述特征能力有限,且不具备旋转不变性。很容易想象,如果图片进行了旋转,则LBP值也会随之改变。
三、代码
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
Mat LBP(Mat