当前位置: 首页 > news >正文

opencv-windows-cmake-Mingw-w64,编译opencv源码

Windows_MinGW_64_OpenCV在线编译动态库,并使用在C++项目:

(mingw-w64 + cmake+github actions方案)

  • 修改版opencv在线编译: 加入opencv-contrib库, 一起编译生成动态库,在线编译好的opencv动态库,可以下载使用.
  • 验证opencv动态库是否可用的模板项目,测试opencv动态库是否可用的模板项目.

附-Windows_MinGW_64_OpenCV本地编译:

以下步骤均借鉴在线编译 Github workflow/actions文件内的流程, 本地搭建并不一定保证成功.

  1. 安装好 Git/ cmake/ mingw-w64,

执行前了解: chocolatey工具, 以及chocolatey工具安装MinGW-w64 13.2.0, cmake, git等操作流程…

  1. 然后,检查确认,配置好cmake/ mingw-w64, 相关的环境变量.

  2. 下载 opencv / opencv-contrib的源码.

新建一个空白文件夹, 在这个文件夹下, 打开终端,下载opencv与opencv-contrib源码(版本号= 4.10.0)
执行以下命令,会多出来两个子文件夹: opencv, opencv-contrib

git clone -b 4.10.0 --depth=1 https://github.com/opencv/opencv_contrib.git
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.10.0
  1. 使用cmake, 对opencv / opencvcontrib的源码.进行编译前的参数配置.

检查是否符合自己的参数要求,
确保是mingw-w64下的g++;
在上一步操作结束后, 进入到opencv/build目录下

cd opencv
mkdir build
cmake -DWITH_OPENMP=ON -DWITH_OPENCL=ON -DWITH_OPENGL=ON -DWITH_TBB=ON -DWITH_VULKAN=ON -DWITH_QT=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_PROTOBUF=OFF -DPROTOBUF_UPDATE_FILES=ON -DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=ON -DCPU_BASELINE_DISABLE=SSE3 -DCPU_BASELINE_REQUIRE=SSE2 -DOPENCV_SKIP_PYTHON_LOADER=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_opencv_world=ON -G  "MinGW Makefiles" -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules  -DCMAKE_CXX_COMPILER=g++ ..\
  1. 然后,借助cmake.exe调用mingw-w64工具对opencv / opencvcontrib的源码进行编译, 与安装操作.

cmake --install, 参数详解
opencv/build目录下执行这些命令:

# 参数配置确认无误后, opencv/build目录下执行这些命令:
cmake --build . --config Release
cmake --install .
  1. 最后, 配置好 opencv/build/install目录, 最好加入环境变量, 之后在C++项目中即可链接安装好的opencv的动态库.

编译,安装无报错,完成后, 可以只保留 opencv/build/install目录内容, 其余内容可以保留纪念,以备下次修改参数再编译安装.

  1. 总结:安装好本地工具链即可. 其余的步骤比如源码下载/源码编译等,可以借助Github workflow/actions在线完成, 下载编译好的动态库包,直接解压即可.

原始参考项目:Windows_MinGW_64_OpenCV

http://www.lryc.cn/news/473244.html

相关文章:

  • Puppeteer点击系统:解锁百度流量点击率提升的解决案例
  • Kyber原理解析
  • 2024 CCF CSP-J/S 2024 第二轮认证 真题试卷
  • Android 无障碍服务常见问题梳理
  • Milvus 与 Faiss:选择合适的向量数据库
  • 2024最全CTF入门指南、CTF夺旗赛及刷题网站(建议收藏!)
  • 【论文阅读】ESRGAN+
  • 北京市首发教育领域人工智能应用指南,力推个性化教育新篇章
  • 【Java并发编程】信号量Semaphore详解
  • window11使用wsl2安装Ubuntu22.04
  • 虚拟滚动 - 从基本实现到 Angular CDK
  • Spring WebFlux学习笔记(一)
  • 富格林:正确追损思维安全交易
  • 前端vue2迁移至uni-app
  • 恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut
  • 区块链介绍
  • git回滚间隔的提交
  • Map和Set(数据结构)
  • vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
  • 新需求编码如何注意低级错误代码
  • 系统架构图设计(行业领域架构)
  • windows 文件监控 c++ 11及以上版本可用
  • jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目
  • postman的脚本设置接口关联
  • 【python】OpenCV—Tracking(10.3)—GOTURN
  • git pull遇到一个问题
  • 书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py
  • 【CSS3】css开篇基础(5)
  • AI产品独立开发变现实战营,炒掉老板做自由职业赚大钱
  • 【UE5.3 Cesium for Unreal】编译GlobePawn