• Windows系统CMake编译Opencv4.6.0源码,支持contrib库


    1 前言

    在使用OpenCV编写人脸识别测试程序时,碰到一个问题,无法打开人脸头文件。"fatal error C1083: 无法打开包括文件: “opencv2/face.hpp”: No such file or directory"。

    刚开始以为工程头文件包含路径没配置完整,于是到OpenCV安装路径瞄了下,没有face.hpp呀???

     

     莫非下载的安装包有问题?搜索后才得知,原来从官网下载的安装包opencv-4.6.0-vc14_vc15.exe,是不包含opencv_contrib模块的,而我要引用的face.hpp,恰好就在opencv_contrib中。之前通过安装包安装的OPenCV,如果用C++实现人脸识别功能,是不能用的。需要用CMake对OPenCV4.6.0和opencv_contrib-4.6.0(contrib模块版本要与OpenCV版本一致,因为OPenCV用的是4.6.0)源码进行编译,生成新的库文件和头文件。

    2 准备工作

    编译环境:Win10 64位系统 + CMake 3.21.0 + OpenCV4.6.0 + contrib4.6.0 + VS2022

    注意:笔者这里用的Cmake版本是3.21.0,请使用这个版本或比这个版本高的Cmake,否则Cmake编译过程可能报错。

    OPenCV源码上次已经下载过了,没有contrib源码,其下载地址

    GitHub - opencv/opencv_contrib at 4.6.0

    或者

    Gitee 极速下载/opencv_contrib - Gitee.com

    github下载速度比较慢,建议从gitee下载,速度快。

     将opencv-4.6.0.zip和opencv_contrib-4.6.0.zip放到一个单独文件夹解压,并新建文件夹build(camke编译源码使用)。示例路径是G:\opencv4.6.0\build,您可以根据自己情况创建路径。

    3 CMake编译

    打开CMake-GUI,设置相关路径如截图

    点击“Configure”按钮,然后选择MSVC编译选项,Visual Studio 17 2022,x64位编译(如果您电脑安装的是2019或其它版本,那就选择2019,也可以)

    点击“Finish”按钮,开始配置。第一次Configure完之后,一堆红色区域,别急

    在“Search”框中输入extra,搜索扩展模块配置项,填入contrib模块的modules路径,如截图,笔者电脑上是G:\opencv4.6.0\opencv_contrib-4.6.0\modules

    在“Search”中输入world,找到编译选项BUILD_opencv_world

     该选项默认没勾选,编译源码时,会生成opencv所有子模块的lib文件,一大堆,开发引用库文件时,很不方便。强烈推荐勾选该选项。这样编译源码后,就可以用一个opencv_worldlib文件代替所有的lib了。

    下边是没勾选BUILD_opencv_world,编译源码生成的lib文件截图(看着头大)

    在“Search”中输入examples,勾选编译示例代码

     配置好上边几个编译选项后,重新点击“Configure”进行配置,操作两三次后,红色区域神奇消失,cmake最下边显示“Configuring done”,表示配置完成。

     此时点击“Generate”按钮,生成MSVC工程文件。至此CMake编译结束,下边就可以使用Visual Studio打开OpenCV工程代码,进行编译了。

     4 VS编译生成

    下边编译步骤比较简单,编译过程会花费些时间,笔者电脑上完成编译花费了1个多小时。

    在路径G:\opencv4.6.0\build,点击OpenCV.sln打开工程

     

    点击CMakeTargets,选择ALL_BUILD,分别使用Debug x64和Release x64模式,生成OpenCV对应的库文件

    Debug x64

     Release x64

    5 安装

    接下来可以运行INSTALL程序,安装头文件,库文件等文件

    笔者电脑安装路径G:\opencv4.6.0\build\install

    到include目录中看看,face.hpp文件便有了哈:)

    笔者已将编译好的安装包文件上传至Opencv4.6.0+contrib4.6.0安装包,如果您觉得自己编译麻烦,也可以从这里下载直接使用。

    6 参考

    CMake编译OpenCV源代码 - 知乎

    opencv3.4.6 vs2017 win10 配置contrib库 教程_金陵小松许的博客-CSDN博客

    OpenCV 之 编译配置 4.6.0 - 飞鸢逐浪 - 博客园

  • 相关阅读:
    POI XWPFDocument 实现word中内容换行
    【Java面试】能说说你对volatile关键字的理解吗?
    一个简单的删除,我发现这么多知识...
    8-ROS中需要熟悉的YMAL语法摘要
    【ES】--Elasticsearch的翻页详解
    根据键名解析特定属性的值相关API
    ruoyi-nbcio-plus基于vue3的flowable修正加签与跳转的前端问题
    【精讲】利用原生js实现todolist
    AI绘画:StableDiffusion实操教程-斗罗大陆-朱竹清(附高清图下载)
    导入excel工具类
  • 原文地址:https://blog.csdn.net/chexlong/article/details/127808455