zoukankan      html  css  js  c++  java
  • Win10 下,使用 CMake + VS2015 + python3 + 第三方库(opencv_contrib) 配置和编译 OpenCV 4.5.1

    导读

      仅记录供内部参考。

          本文将重点放在 编译第三方库 和 生成对应的 python 库(yd文件)上 。


    目录
    1. 软件和源码准备
    2. 使用 CMake 生成 OpenCV 解决方案目
    3. 编译生成
    4. 参考链接
    1、软件和源码准备

    注:操作系统为 Windows 10

    软件

    Visual Studio 2015

    Python 3.6.8

     CMake 工具

    下载 opencv 源码

    https://github.com/opencv/opencv.git

    https://github.com/opencv/opencv_contrib.git

    组织内部使用:(外部参考文章者可忽略)

    https://gitee.com/kingstoneai/opencv.git

    https://gitee.com/kingstoneai/opencv_contrib.git

    (另外还有解决 网络问题,提前下载好的 [opencv/.cache]压缩包)

    2、使用 CMake 生成 OpenCV 解决方案
    操作步骤

    1、使用 CMake (gui) 打开 opencvCMakeLists.txt,置构建输出的目录

     2、点击 Configure 开始配置,指定项目生成器目标为 “Visual Studio 14 2015 Win64”  (这里希望生成 64 位的版本)

    3、如果出现如下错误,忽略(该提示 提到 配置 PYTHON2_EXECUTABLE 选项,这里使用 python3 )

    4、下载文件失败错误(这个是由于脚本中下载的地址是 github,而这个被墙了)

    解决办法:根据 log 文件提示,自己下载对应的文件,放置到对应提示的目录位置

    文件自行下载。

    组织内部可快捷下载我先下好的 文件(百度云盘,提取码1234)(外部参考文章者可忽略)

     下载完成后,放入 opencv/.cache 目录下对应的位置后,再点击 Configure, 可看到相关的下载错误提示消失了

    -------------------------------------------------------------------------------------

    本文重点内容: 编译第三方库 和 生成对应的 python 库(yd文件

    5、设置对应的第三方库目录

    这里只希望编译 wechat_qrcode 模块,设置 额外模块路径为 modules/ wechat_qrcode (如果希望编译所有额外的 库,可以指定 modules 目录)

    6、设置 python3 相关参数

     

     (一开始参考一篇博客填写 PYTHON3_LIBRARY 为 python36.dll,  后续编译出错了,这里应该填写  D:/development/python/python368/Libs/python36.lib 才对)

     其中的 numpy 是一个拓展数学计算库,需要先提前安装:

     下载完成后,按建议,将 Scripts 目录加到环境变量

     

    配置完后,点击 configure,确认 python3 是否已经被识别(如果没有出现 Build_pencv_python3 ,请重新清空 缓存,删除生成的目录,重新 配置,直到出现)

    7、设置其他参数

    勾选 BUILD_opencv_world:将.lib或者.dll文件统一整合进一个world文件中,方便使用

     

     去除一些下一节提到的 “不建议勾选的项”

    8、其他忽略的提示:

    遇到如下提示,忽略即可:(参考https://zhuanlan.zhihu.com/p/106689372 第五步)

     

     9、最后,检查配置内容,点击 Generate 完成方案的生成

     

    相关 CMake 配置参数说明
    • BUILD_opencv_world :将.lib或者.dll文件统一整合进一个world文件中,方便使用。但若想只使用一部分模块可不勾选以减少体积。生成动态链接库dll需要勾选BUILD_SHARED_LIBS 。
    • ENABLE_CXX11 :       支持C++11特性
    • OPENCV_EXTRA_MODULES_PATH :若使用opencv_contrib模块,则在此处填写解压后的路径,如 …opencv_contrib-3.3.1modules
    • BUILD_EXAMPLES :项目文件中会包含sample工程,按需勾选。
    • INSTALL_C_EXAMPLES :将在install文件夹中编译出一些示例程序(但都是.exe,因此想参考最好还是看sources中的源代码)
    不建议勾选
    • BUILD_DOCS :生成文档,需要安装Doxygen,文档可在官网查看。
    • BUILD_opencv_ts :一些单元测试代码,参考文章1 。
    • INSTALL_TESTS :与开发无关,参考文章1 。
    • BUILD_opencv_saliency :文章2 中指出win10下不能勾选,但实际上并未发现此项。

            文章1 中还提供了很多模块及项目的解释,可根据自己需要修改。
    ————————————————
    原文链接:https://blog.csdn.net/howlclat/article/details/78783701

    3、编译生成

    打开解决方案 OpenCV.sln

    如下图,批量构建:

     

     根据电脑配置,等待30分钟至1个小时编译。

    编译结果:

    值得注意的是,这里 pyd 生成时,release 下可以正常生成

     debug 下这边提示错误(该点可参考文章解决:https://www.cnblogs.com/lzhu/p/8198654.html)

     

    编译完成后,构建 INSTALL 项目,完成安装:

    百度云盘:opencv-4.5.1-vc14-wechat_qrcode.zip  提取码:1234

     构建说明:

    opencv 构建节点:

    commit 1363496c1106606684d40447f5d1149b2c66a9f8 (HEAD -> v4.5.1-dev, tag: 4.5.1, gitee/v4.5.1, v4.5.1)                
    Author: Alexander Alekhin <alexander.a.alekhin@gmail.com>                                                             
    Date:   Mon Dec 21 20:01:38 2020 +0000                                                                                

    opencv_contrib 构建节点:

    commit 0165d48da48b169420cd4d70867b991bd48543e8 (HEAD -> master, origin/master, origin/HEAD, gitee/master)                                                                                                        
    Author: Dimitrios Psychogyios <d.psychogyios@gmail.com>                                                                                                                                                           
    Date:   Mon Mar 1 11:52:49 2021 +0000                                                                                                                                                                             
    4、参考链接

    参考链接:

    使用 CMake + VS2017 ( + Python 3) 配置和编译 OpenCV 3.3

    python3.6安装numpy包笔记 


    版权声明
    本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者 BensonLaur  和本文原始地址:
  • 相关阅读:
    通过Ajax的方式执行GP服务
    Arcgis for js之GP实现缓冲区计算
    sde用sql实现erase
    OL2中设置鼠标的样式
    OL2中重置地图DIV大小后地图的联动
    OL2中的多地图联动展示
    Codeforces Round #357 (Div. 2) Heap Operations
    POJ-1847 Tram
    【转】一些图论、网络流入门题总结、汇总
    POJ-2398 Toy Storage
  • 原文地址:https://www.cnblogs.com/BensonLaur/p/14544149.html
Copyright © 2011-2022 走看看