局部二值模式(Local Binary Pattern - LBP)是广泛用于图像分类的一种图像特征,它的特点是,在图像发生光照变化时,提取的特征仍然能够不发生大的改变。提取LBP的过程首先是将原始图像转换为LBP图,然后统计LBP图的LBP直方图,并以这个向量形式的直方图来表示原始的图像。由于目前不少开源的LBP实现代码没有给出中间过程的可视化步骤,这里给出了由原始图转换为LBP图的C++代码。
转换LBP图的代码
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#ifdef _DEBUG
#pragma comment( lib, "opencv_core245d.lib" )
#pragma comment( lib, "opencv_imgproc245d.lib" )
#pragma comment( lib, "opencv_highgui245d.lib" )
#else
#pragma comment( lib, "opencv_core245.lib" )
#pragma comment( lib, "opencv_imgproc245.lib" )
#pragma comment( lib, "opencv_highgui245.lib" )
#endif
int main( int argc, char * argv[] )
{
if ( argc != 4 )
{
std::cerr << "Arguments not valid." <&l