当前位置: 首页 > 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

相关文章:

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

Windows_MinGW_64_OpenCV在线编译动态库,并使用在C项目: (mingw-w64 cmakegithub actions方案) 修改版opencv在线编译: 加入opencv-contrib库, 一起编译生成动态库,在线编译好的opencv动态库,可以下载使用.验证opencv动态库是否可用的模板项目,测试opencv动态库是否可用的模板…...

Puppeteer点击系统:解锁百度流量点击率提升的解决案例

在数字营销领域,流量和搜索引擎优化(SEO)是提升网站可见性的关键。我开发了一个基于Puppeteer的点击系统,旨在自动化地提升百度流量点击率。本文将介绍这个系统如何通过模拟真实用户行为,优化关键词排名,并…...

Kyber原理解析

Kyber是一种IND-CCA2安全的密钥封装机制。Kyber的安全性基于在模格(MLWE问题)中解决LWE问题的难度。Kyber的构造采⽤两阶段⽅法:⾸先介绍⼀种⽤来加密固定32字节⻓度的消息原⽂的IND-CPA安全性的公钥加密⽅案,我们称之为 CPAPKE&a…...

2024 CCF CSP-J/S 2024 第二轮认证 真题试卷

2024年信息学奥赛CSP-J2入门级复赛真题试卷 题目总数:4 总分数:400 编程题 第 1 题 问答题 扑克牌(poker) 【题目描述】 小 P 从同学小 Q 那儿借来一副 n 张牌的扑克牌。 本题中我们不考虑大小王,此时每张牌具有两个属性:花色和…...

Android 无障碍服务常见问题梳理

android 无障碍服务本意是为了帮助盲人操作手机而设计,但是现在也有人利用这个做自动化操作。 本片文章讲述的主要用作自动化方面。 官方文档 关于配置方法和接口列表,参考 无障碍 比较常用的接口: 1. 执行点击操作 2. 触摸屏幕&#xf…...

Milvus 与 Faiss:选择合适的向量数据库

向量数据库 Milvus 和 Faiss 都是处理大规模向量数据的工具,尤其适用于需要相似性搜索的场景,比如推荐系统、图像检索和自然语言处理等。但它们各自的设计初衷和功能有所不同,适用于不同的使用场景。下面,我们从性能、功能特性、部…...

2024最全CTF入门指南、CTF夺旗赛及刷题网站(建议收藏!)

文章目录 一、赛事介绍二、竞赛模式三、CTF各大题型简介四、赛题情况分析CTF 工具集合Web | Web 安全🕸 MISC | 杂项❆ 基础工具❆ 解题工具❆ 开源脚本🔑 Crypto | 密码学 💫 Reverse | 逆向基础工具💥 PWN | 二进制 &#x1f44…...

【论文阅读】ESRGAN+

学习资料 论文题目:进一步改进增强型超分辨率生成对抗网络(ESRGAN : FURTHER IMPROVING ENHANCED SUPER-RESOLUTION GENERATIVE ADVERSARIAL NETWORK)论文地址:2001.08073代码:ncarraz/ESRGANplus: ICASSP …...

北京市首发教育领域人工智能应用指南,力推个性化教育新篇章

近年来,人工智能在全球教育领域的应用呈现蓬勃发展之势,各国都在探索如何将其更好的融入教育体系,在这一背景下,北京市于10月26日发布《北京市教育领域人工智能应用指南》(以下简称《指南》),推…...

【Java并发编程】信号量Semaphore详解

一、简介 Semaphore(信号量):是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 Semaphore 一般用于流量的控制,特别是公共资源有限的应用场景。例如数据库的连接&am…...

window11使用wsl2安装Ubuntu22.04

目录 1、快速了解wsl2 安装子系统linux流程(B站视频) 2、wsl2常用命令 3、windows与子系统Linux文件访问方法 4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT) 5、wsl2 Ubuntu miniconda 安装 6、…...

虚拟滚动 - 从基本实现到 Angular CDK

简介 在大数据列表的处理上,虚拟滚动是一种优化性能的有效方式。本篇文章将详细介绍两种常见的虚拟滚动实现方式:使用 transform 属性和 Intersection Observer。重点讲解如何通过 transform 属性实现高效的虚拟滚动,并对比Angular CDK中的实…...

Spring WebFlux学习笔记(一)

核心思想 WebFlux主要是异步 例子 参考一个源码&#xff1a; https://blog.csdn.net/qq_43923045/article/details/106309432?spm1001.2014.3001.5506 GetMapping("/delay1")public Mono<RestResult> delayResult() {long l System.currentTimeMillis();…...

富格林:正确追损思维安全交易

富格林指出&#xff0c;对于如何正确追损的这个问题是需要持续付出时间和精力的&#xff0c;发现具备耐心的投资者往往在正确追损的路上更加游刃有余。他们总是可以保持较为平和的心态&#xff0c;不急不躁地分析原因并通过自身掌握的安全应对措施来进行交易。富格林在以下分享…...

前端vue2迁移至uni-app

1.确定文件存放位置 components: 继续沿用 pages: views内容移动到pages static: assets内容移动到static uni_modules: uni-app的插件存放位置 迁移前 src├─assets│ └─less├─components│ ├─common│ │ ├─CommentPart│ │ └─MessDetail│ ├─home│…...

恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut

在Rust中&#xff0c;FnOnce、FnMut和Fn是三个用于表示闭包&#xff08;closure&#xff09;类型的trait。闭包是一种特殊的函数&#xff0c;它可以捕获其环境变量&#xff0c;即在其定义时所处的作用域中的变量。以下是关于这三个trait的详细介绍&#xff1a; 1. FnOnce&#…...

区块链介绍

区块链&#xff08;英文名&#xff1a;blockchain或block chain&#xff09;是一种块链式存储、不可篡改、安全可信的去中心化分布式账本&#xff0c;它结合了分布式存储、点对点传输、共识机制、密码学等技术&#xff0c;通过不断增长的数据块链&#xff08;Blocks&#xff09…...

git回滚间隔的提交

如果你需要回滚几个非连续的提交&#xff0c;可以使用 git revert 来选择性地撤销这些提交。这样做不会改变提交历史&#xff0c;只是会在当前分支上创建新的提交来反转指定的更改。 ### 使用 git revert 回滚间隔的提交 1. **查看提交历史**&#xff1a; 首先&#xff0c…...

Map和Set(数据结构)

一、概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 Map 和 Set 是一种适合动态查找的集合容器。 模型 一般把搜索的数据称为关键字&#xff08; Key &#xff09;&#xff0c;和关键字对应的称为值&#xff0…...

vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题

前言&#xff1a; 我最初在网上翻阅查找了很多方法&#xff0c;发现大家都是说在page.json中tabbar中添加&#xff1a;"custom": true,即可解决首次闪烁的问题&#xff0c;可是添加了我这边还是会闪烁&#xff0c;因此我这边改变了思路&#xff0c;使用了虚拟页面来解…...

OpenClaw调试技巧:百川2-13B任务失败时的日志分析与修复

OpenClaw调试技巧&#xff1a;百川2-13B任务失败时的日志分析与修复 1. 当自动化任务突然罢工时 上周三凌晨2点&#xff0c;我的OpenClaw突然停止了工作——这个本该在深夜自动整理会议纪要并归档的助手&#xff0c;悄无声息地宕机了。监控屏幕显示它卡在"正在调用百川2…...

Qwen3-Embedding-4B快速上手:5分钟部署,体验119语种向量化

Qwen3-Embedding-4B快速上手&#xff1a;5分钟部署&#xff0c;体验119语种向量化 1. 认识Qwen3-Embedding-4B 1.1 什么是文本向量化&#xff1f; 想象你走进一家大型图书馆&#xff0c;面对成千上万本书籍。如果让你手动查找与"人工智能"相关的书籍&#xff0c;你…...

别再傻傻匀速拖滑块了!用Python模拟真人鼠标轨迹,轻松过Geetest验证码

突破验证码防线&#xff1a;Python模拟人类行为轨迹的实战艺术 验证码系统正变得越来越智能&#xff0c;Geetest等平台已经能够通过分析用户行为模式来区分人类和机器。传统的匀速滑块操作在这些系统面前几乎无所遁形。本文将带你深入理解现代验证码系统的工作原理&#xff0c;…...

避开这些坑!用UDE STK 5.0给英飞凌AURIX芯片下载程序时,关于板卡休眠与唤醒的实战经验

避开这些坑&#xff01;用UDE STK 5.0给英飞凌AURIX芯片下载程序时&#xff0c;关于板卡休眠与唤醒的实战经验 在嵌入式系统开发中&#xff0c;低功耗设计是一个永恒的话题。特别是对于汽车电子、工业控制等领域的应用&#xff0c;如何平衡系统性能和功耗表现&#xff0c;往往…...

避坑指南:STM32磁编码器校准常见的5个错误及解决方案

STM32磁编码器校准实战&#xff1a;5个典型错误分析与高阶解决方案 磁编码器在步进电机控制系统中扮演着关键角色&#xff0c;而MT6816作为国产AMR技术代表芯片&#xff0c;其14位高精度输出为位置检测提供了可靠保障。但在实际校准过程中&#xff0c;开发者常会遇到CALI_Error…...

Telegram用户必看:Grok聊天机器人全功能实测与隐藏技巧大公开

Telegram用户必看&#xff1a;Grok聊天机器人全功能实测与隐藏技巧大公开 作为Telegram深度用户&#xff0c;你可能已经注意到聊天界面顶部多了一个新面孔——Grok聊天机器人。这款由xAI打造的AI助手正在悄然改变我们的通讯体验。不同于市面上大多数聊天机器人&#xff0c;Grok…...

基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群

基于DAMOYOLO-S与计算机网络技术&#xff1a;构建分布式视频分析集群 想象一下&#xff0c;一个大型物流园区&#xff0c;上百个摄像头日夜不停地运转&#xff0c;管理者需要实时知道&#xff1a;哪条通道拥堵了&#xff1f;哪个区域有异常人员闯入&#xff1f;传统的监控方式…...

s2-pro语音合成应用:法律文书语音播报——专业术语与标点精准处理

s2-pro语音合成应用&#xff1a;法律文书语音播报——专业术语与标点精准处理 1. 专业语音合成的法律场景需求 在法律行业中&#xff0c;文书语音播报有着特殊而严格的要求。传统语音合成技术在处理法律文书时常常面临以下挑战&#xff1a; 专业术语发音不准&#xff1a;如&…...

不只是图表:用Three.js和Vue3打造一个可交互的3D热力图组件库(附完整源码)

不只是图表&#xff1a;用Three.js和Vue3打造一个可交互的3D热力图组件库 在数据可视化领域&#xff0c;3D热力图正逐渐成为展示高密度空间数据的首选方案。传统2D热力图虽然直观&#xff0c;但在表现复杂数据关系时往往力不从心。本文将带您从零开始构建一个生产级Vue3Three.j…...

DM数据库迁移实战:dimp与dexp版本兼容性问题解析与解决方案

1. 当DM数据库迁移遇上版本兼容性问题 最近在帮客户做DM数据库迁移时&#xff0c;遇到了一个典型问题&#xff1a;用高版本dexp导出的数据文件&#xff0c;无法用低版本dimp导入。这就像用最新版Word写的文档&#xff0c;用老版本打不开一样让人头疼。具体表现是执行导入命令时…...