在Linux下编译OpenCV_Contrib

本文档详细介绍了如何在Linux系统下编译包含人脸识别算法的OpenCV_Contrib。首先,需要从特定来源下载opencv_contrib和opencv源码,并安装cmake。接着,在指定目录配置cmake,通过设置特定参数只编译人脸识别相关的库。然后,执行编译过程,最后进行安装。整个过程中,可以调整编译选项以加速或减小编译范围。

在Linux下编译OpenCV_Contrib

最近做人脸识别项目的时候,发现在OpenCV3包中包含了人脸检测算法所需的CascadeClassifier,但不含识别算法所需的FaceRecognizer。使用官网例程时,编译器会提示缺少opencv2/contrib/contrib.hpp。
查询资料后得知, 人脸识别等算法模块由于不够稳定,在OpenCV3版本中,被放在了OpenCV_Contrib包里,需要单独下载并编译。

1.下载所需工具

  1. 下载opencv_contrib源码:https://github.com/Itseez/opencv_contrib
  2. 下载opencv源码:https://sourceforge.net/projects/opencvlibrary
  3. 下载安装cmake:sudo apt install cmake
    顺便一提,现在从github上下载大型项目速度极慢且容易失败,建议使用墙内的coding.net导入github项目后下载。

2.配置

  1. 新建一个文件夹作为编译目录,切换到这个目录
  2. 配置cmake,语法为cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
  3. 其中opencv_contribopencv_source_directory分别为opencv_contrib和opencv源码解压后的文件夹
### 如何使用 OpenCV 4.8.0 编译 opencv_contrib 模块 为了成功编译 OpenCV 4.8.0 和其扩展模块 `opencv_contrib`,以下是详细的说明: #### 准备工作 在开始之前,需要确保已准备好以下工具和依赖项: - **OpenCV 源码**:可以从指定的仓库下载适合的版本[^1]。 - **opencv_contrib 源码**:同样需匹配 OpenCV 版本号,例如 OpenCV 4.8.0 对应 opencv_contrib 4.8.0[^2]。 - **CMake 工具**:用于配置构建环境。可以通过官方链接获取最新版 CMake 并完成安装。 - **Visual Studio (Windows)** 或者 GCC/G++ (Linux) 开发套件。 对于 Linux 用户,在 Ubuntu 22.04 上的操作流程已被详细记录于参考资料中[^3]。 --- #### 配置与编译步骤 ##### 1. 解压源码文件 将下载好的 OpenCVopencv_contrib 压缩包解压缩到目标目录下。假设路径如下: ```plaintext /path/to/opencv-4.8.0/ /path/to/opencv_contrib-4.8.0/ ``` ##### 2. 创建构建目录 建议创建一个新的构建目录以保持原始源码整洁无污染。执行命令如下(适用于 Linux/MacOS;Windows 类似操作可通过 GUI 实现): ```bash mkdir /path/to/build_opencv cd /path/to/build_opencv ``` ##### 3. 使用 CMake 进行配置 运行 CMake 来设置项目的选项参数。关键在于启用 `OPENCV_EXTRA_MODULES_PATH` 参数指向 opencv_contrib 的 modules 文件夹位置。具体命令示例如下: ```bash cmake -D CMAKE_BUILD_TYPE=Release \ -D OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib-4.8.0/modules \ -D BUILD_EXAMPLES=ON .. ``` 上述命令中的 `-D BUILD_EXAMPLES=ON` 是可选部分,如果不需要样例程序则可以省略该条目。 ##### 4. 执行实际编译过程 一旦 CMake 成功生成 Makefile 后,就可以启动多线程模式下的编译进程了。推荐采用以下方式加速处理速度: ```bash make -j$(nproc) ``` 此指令利用 CPU 核心数自动调整并发作业数量从而提升效率。完成后继续安装至系统默认路径或者自定义前缀下: ```bash sudo make install ``` 针对 Windows 系统而言,则通过 Visual Studio IDE 加载由 CMake 输出的工作区解决方案(.sln),随后按照常规方法进行调试发布版本的选择及最终产物导出即可。 --- #### 验证安装成果 最后一步非常重要——验证新功能是否正常运作。比如测试 SIFT 功能是否存在支持情况: ```cpp #include <iostream> #include <opencv2/core.hpp> #include <opencv2/features2d.hpp> int main() { try { cv::Ptr<cv::FeatureDetector> detector = cv::SIFT::create(); std::cout << "SIFT feature detection is available." << std::endl; } catch(const cv::Exception& e){ std::cerr << "Error: " << e.what() << '\n'; } } ``` 以上代码片段展示了如何加载并初始化 SIFT 插件实例对象。 --- ### 注意事项 在整个过程中遇到任何疑问都可以访问开源社区寻求帮助,同时也鼓励反馈意见给维护团队以便改进文档质量[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值