Open cv 3.0.0 FaceRecognizer class 在Linux (Ubuntu)中编译时无法解决

Open cv 3.0.0 FaceRecognizer class cannot be resolved while compiling in Linux (Ubuntu)

在 Open Cv 3.0.0 中,FaceRecognizer class 在 Linux (Ubuntu) 中编译时无法解析。这曾经在 2.4.11 版本中工作并且 class 出现在 contrib 模块中。 Open cv 3.0.0 版本中似乎缺少 contrib 模块。

open cv 3.0.0 的安装默认不自带 contrib 模块

contrib 模块必须单独安装。请按照以下说明解决 FaceRecognizer class.

的编译问题
  1. 首先,在打开的 cv 中转到您的构建目录。这可以命名为 buildrelease 当你安装了 open cv 3.0.0 版本。
  2. 你可以运行下面的命令来安装contrib模块

cmake -DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules opencv_source_directory

  1. 上面命令中,opencv_contrib就是你从github[=]下载的opencv contrib模块目录路径68=][https://github.com/Itseez/opencv_contrib/tree/3.0.0-rc1][1]opencv_source_directory 是 opencv 的源目录,这通常是您解压或下载它的 open cv 根文件夹,这将是 ../ 如果您遵循 open用于安装和创建 releasebuild 文件夹

  2. 的 cv 教程说明
  3. 我使用了来自github的open cv 3.0.0的RC1标签,你可以使用你选择的标签。

  4. 现在运行以下两个命令

make -j $(nproc)

sudo make install

  1. 在此之后,在您引用 FaceRecognizer class 的代码(.cpp 或 .hpp 文件)中,将以下命名空间放在 #includes
  2. 附近

使用命名空间简历; 使用命名空间面;

  1. 或者,您也可以引用带有命名空间前缀的 class,例如,如果您将 FaceRecognizer 引用为 cv::FaceRecognizer,现在将其引用为 cv::face::FaceRecognizer。这只是一种编码风格。使用第 6 点或第 7 点样式,不能同时使用。

现在你应该看不到任何编译问题了。