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



在Open Cv 3.0.0中,在Linux(Ubuntu)中编译时无法解析FaceRecognizer类。这曾经在2.4.11版本中工作,该类存在于contrib模块中。Open cv 3.0.0版本中似乎缺少contrib模块。

默认情况下,contrib模块不随open cv 3.0.0 的安装一起提供

contrib模块必须单独安装。请按照下面的说明来解决FaceRecognizer类的编译问题。

  1. 首先,转到opencv中的构建目录当您安装了opencv3.0.0时,构建发布版本
  2. 在那里,您可以运行以下命令来安装contrib模块

cmake-DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/MODULES opencv_source_directory

  1. 在上面的命令中,opencv_contrib是您从github链接下载的opencv-contrib模块目录路径[https://github.com/Itseez/opencv_contrib/tree/3.0.0-rc1][1] opencv_source_directory是opencv的源目录,它通常是提取或下载它的opencv根文件夹,它将是../如果您已经按照open-cv教程的说明安装和创建版本构建文件夹

  2. 我使用了github的opencv3.0.0的RC1标签,你可以使用你选择的标签。

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

make-j$(nproc)

sudo制作安装

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

使用命名空间cv;使用名称空间面;

  1. 或者,您也可以引用带有命名空间前缀的类,如中所示,如果您将FaceRecognizer称为cv::FaceRecognize,现在将其称为cv:face::FaceIdentifizer。这只是一种编码风格。使用第6点或第7点的样式,而不是两者都使用

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

相关内容

  • 没有找到相关文章

最新更新