c++ - OpenCV 中 FaceRecognizer 中的 LBP 运算符

标签 c++ algorithm opencv image-processing face-recognition

我正在使用 OpenCV 和 C++ 处理一些图像矩阵的 LBP 直方图,我需要计算这些矩阵的 LBP(1,8) 和 LBP(2,16)。最新版本的 OpenCV 直接支持使用默认的 LBP(1,8) 运算符计算 LBP FaceRecognizer,我可以在实例化对象时通过设置值来计算 LBP(2,16)。

我的问题是哪个矩阵存储给定输入矩阵的 LBP 代码?深入实现,我开始知道 predict(InputArray _src) 函数首先调用 elbp(src, _radius, _neighbors) 然后是 spatial_histogram(/< em>params/) 计算直方图。但是这些函数中哪个矩阵存储了LBP码??

基本上,这 2 个函数(elbp() 和 spatial_histogram())实际计算的是什么?

提前致谢。

最佳答案

如果您查看 trainingprediction步骤,您会看到,两者的工作流程如下所示:

  • 收集整个图像的 lbp 特征 (elbp)
  • 将 lbp 图像分成 nxn block ,为每个 block 收集直方图,并将它们连接成 1 个大直方图 (spatial_histogram)

旁注:我对 16 邻域运算符的用处有些怀疑。每个补丁需要 64k 直方图 bin,如果您的 img 只有 100x100 和 8x8 补丁,则每个补丁/直方图只有 144 个像素。那将是一个非常稀疏的。你的特征空间将会爆炸! - 少即是多!

祝你好运,黑客愉快!

关于c++ - OpenCV 中 FaceRecognizer 中的 LBP 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19066336/

相关文章:

c++ - 将数据从 C 进程传递到 C++ 进程

C++ ofstream 不会改变 mtime

C++11 将一个 vector move 到另一个 vector - 将右值引用传递给构造函数

Android - Opencv如何将黑白垫保存为透明PNG

C++/opencv : how to delete specific path pixels in efficient way

c++ - OpenCV C++ : How to find all the circles in an image

c++ - 是否可以避免将参数复制到 lambda 函数?

algorithm - 如何从IP地址计算子网掩码?

algorithm - 包含排除的动态规划技术

algorithm - Frog 和蟾蜍