【问题标题】:LBP Operator in FaceRecognizer in OpenCVOpenCV中FaceRecognizer中的LBP算子
【发布时间】:2013-10-04 16:05:21
【问题描述】:

我正在使用 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(/params/) 来计算直方图。但是这些函数中的哪个矩阵存储了 LBP 代码?

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    如果您查看trainingprediction 步骤,您会发现两者的工作流程如下:

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

    旁注:我对 16-neighbour 运算符的有用性有一些疑问。每个补丁需要 64k 个直方图箱,如果您的 img 只有 100x100 和 8x8 补丁,那么每个补丁/直方图只有 144 个像素。这将是一个非常稀疏的。你的特征空间会爆炸! - 这里可能少一些!

    祝你好运,黑客愉快!

    【讨论】:

    • 对于具有 8x8 补丁的 100x100 暗淡图像,我认为没有。补丁的数量为 144,每块 64 像素。是的,当我在 spatial_histogram() 函数之后生成矩阵的直方图时,它们非常稀疏。几乎看不到一些酒吧。我的图像尺寸为 92x112。有什么解决办法吗?我认为在 OpenCV 中,没有。仅在所有情况下使用的箱数为 256。
    猜你喜欢
    • 2014-07-08
    • 2014-04-29
    • 1970-01-01
    • 2012-11-19
    • 2013-10-03
    • 2013-06-15
    • 1970-01-01
    • 2016-01-10
    • 2018-05-25
    相关资源
    最近更新 更多