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

时间:2015-06-25 06:35:41

标签: opencv face-recognition

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

1 个答案:

答案 0 :(得分:1)

默认情况下,contrib模块不附带open cv 3.0.0

的安装

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

  1. 首先,在open cv中转到你的build目录。这可以命名为 安装open cv 3.0.0后,构建发布 版本
  2. 您可以运行以下命令来安装contrib模块
  3.   

    cmake -DOPENCV_EXTRA_MODULES_PATH = opencv_contrib / modules opencv_source_directory

    1. 在上面的命令中, opencv_contrib 是您从github链接[https://github.com/Itseez/opencv_contrib/tree/3.0.0-rc1][1]下载的opencv contrib模块目录路径。 opencv_source_directory 是opencv的源目录,它通常是您解压缩或下载它的open cv根文件夹,如果您已按照打开的cv教程说明进行安装和创建,那么这将是../ 发布构建文件夹

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

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

      make -j $(nproc)

           

      sudo make install

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

        1. 或者您也可以引用带有名称空间前缀的类,如果您将FaceRecognizer称为cv :: FaceRecognizer,现在将其称为cv :: face :: FaceRecognizer。这只是一种编码风格。使用6点或7点样式,而不是两者。
        2. 现在你不应该看到任何编译问题。