9

我正在使用 OpenCV 3.0 测试版。

我尝试使用 createLBPHFaceRecognizer() 创建人脸识别器;类,

   **Ptr <FaceRecognizer> model =  createLBPHFaceRecognizer();**

我的错误是

   **error: 'createLBPHFaceRecognizer' was not declared in this scope**

我研究发现该类存在contrib于以前版本的OpenCV中的opencv2模块(opencv2/contrib/contrib.hpp)中

但是这个模块在 opencv 3.0 beta 中不可用。那么 opencv 3.0 中定义的识别器类在哪里呢?

如果它们没有定义,我们如何在现有模块之外添加这个模块?

4

3 回答 3

9

您必须下载并构建opencv_contrib 存储库。

在运行 cmake、make、make install 之后,

#include <opencv2/face.hpp>

// note the additional namespace:    
cv::Ptr <cv::face::FaceRecognizer> model = cv::face::createLBPHFaceRecognizer();
// proceed as usual
于 2015-02-04T13:59:01.067 回答
0

来自https://github.com/opencv/opencv_contrib

  1. 启动 cmake-gui
  2. 选择opencv源代码文件夹和将要构建二进制文件的文件夹(界面的2上位形式)
  3. 按配置按钮。您将在中央界面中看到所有 opencv 构建参数
  4. 浏览参数并查找名为 OPENCV_EXTRA_MODULES_PATH 的表单(使用搜索表单快速关注它)
  5. 使用其浏览按钮,通过 /modules 值的正确路径名完成此 OPENCV_EXTRA_MODULES_PATH。
  6. 按配置按钮,然后按生成按钮(第一次,您将被询问要使用哪种 makefile 样式)
  7. 使用您选择的方法构建 opencv 核心(如果您在步骤 6 中选择了 Unix makfile,则进行 make 和 make install)

要运行,需要添加到 contrib 模块的链接器标志才能在您的代码/IDE 中使用它们。例如要使用 aruco 模块,将添加“-lopencv_aruco”标志。

于 2016-12-13T20:04:22.973 回答
0

在我的 Debian 安装中

$ dpkg -l libopencv-contrib-dev
ii  libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64        development files for libopencv-contrib3.2

使我能够使用贡献的模块和一个额外的包含。例如:

#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>
auto model = cv::face::createLBPHFaceRecognizer();
于 2019-03-17T18:21:08.340 回答