如何在Windows上编译OpenCV4.7.0

前言

​ 参考:Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d

这里在其基础上还出现了一些问题,仅供参考。

正文

一、环境

1、win10

2、cmake-gui

3、opencv4.7.0

4、VS2019

二、编译过程

1、下载需要的文件:

通过网盘分享的文件:OpenCV4.7.0
链接: https://pan.baidu.com/s/1qb9YwbY34feBp0UzhAnefA?pwd=1111 提取码: 1111
在这里插入图片描述

2、在源码目录创建一个build目录,用来放构建后的东西:
在这里插入图片描述

3、选择一下目录:
在这里插入图片描述

4、选择我们要的:
在这里插入图片描述

点击Finish

5、开始排除我们所不要的:

在这里插入图片描述

1、不要java->Search中输入java-去掉默认勾选

2、不要python->Search中输入python-去掉默认勾选

3、不要test->Search中输入test->去掉勾选

6、根据自己选择,选择是否要生成一个大的opencv_world库:
在这里插入图片描述

7、 配置Configure的时候,要勾选上NONFREE,否者C++ 调用SURF::create会报错
在这里插入图片描述

8、如果你只是想编译一个opencv的库,到这里基本就差不多了,加上下面的[1、opencv编译下载失败解决]这个点阐述的问题,基本就能完成了。当然,下面还有打开VS2019进行build的操作,那些都一般不会报错。

但如果你想要将opencv-contrib也编译进去的话,则这个变量要改一下:
在这里插入图片描述

拷贝的时候,要记得改一下。

9、然后点击configure就是出现下面的问题了,你可以参考下下面的。

10、config-done之后,点击Generate:
在这里插入图片描述

11、然后点击Open Project
在这里插入图片描述

12、使用VS2019打开工程后,点击ALL_BUILD,右键 生成
在这里插入图片描述

13、生成后,点击INSTALL,右键点击生成。

三、出现的问题

1、opencv编译下载失败解决

1、最好使用手动下载的方式,否则,若使用网上推荐的gitcode的方式,会发现,gitcode opencv的那些文件路径已经是存在问题了。无法成功进行下载。

2、还不如用报错信息里面提供的这种:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/7dd0d4f1d6fe75f05f3d3b5e38cbc96c1a2d2809/ffmpeg/ffmpeg_version.cmake

直接去翻墙下载就好了。

具体方案如下:

1、报错IPPICV无法下载:
在这里插入图片描述

方案:将这个地址复制出来:

在这里插入图片描述

下载这个文件后,放到:这个目录下,修改文件名为里面的那个文件的文件名:

> 在这里插入图片描述

2、ffmpeg对应的dll找不到:
在这里插入图片描述

也是同样的道理,放到.cache/ffmpeg里面即可。

3、需要注意的是:
在这里插入图片描述

这个文件:
在这里插入图片描述

最后右键另存为ffmpeg_version.cmake.txt ->重命名一下->ffmpeg_version.cmake

这样就可以了。

有可能出现ffmpeg 拷贝不到build目录下的3rdparty下面,那你就直接拷贝到那个目录下就好了。
在这里插入图片描述

4、若有编译opencv-contrib ,则要注意会报这个错:https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat 缺少这个文件的错,要么你就也是直接下载即可,放到这个下面,替换原来的文件:
在这里插入图片描述

5、若有编译opencv-contrib,则会报缺少wechat_qrcode的一系列问题,将这两个文件夹放到这个下面,(downloads需要自己创建)
在这里插入图片描述

2、代码笔记24 windows+cmake+opencv4.5.5安装中出现的IPPICV: Download: ippicv_2020_win_intel64_20191018_general.zip问题

参考这篇文章

3、OPENCV_EXTRAL_MODULES_PATH 路径要是反斜杠

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
https://blog.csdn.net/star_of_science/article/details/104406819)

四、资源

1、编译出的opencv文件:通过网盘分享的文件:VS2019+OpenCV4.7.0+contrib
链接: https://pan.baidu.com/s/14-fuRidOrku20lpcTeywIA?pwd=1111 提取码: 1111
2、编译过程的相关资源
有需要的可以私聊

参考

1、非常值得学习的文章:在源码中寻找opencv3.4.1的自动曝光设置历程-opencv

2、CMake编译OpenCV3.4.6时opencv_ffmpeg.dll等下载失败的解决办法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型(LLM) 的长上下文与 RAG:评估与回顾

大模型的长上下文与 RAG 以下是本文的主要发现: 在问答基准测试中,LC 的表现通常优于 RAG 基于摘要的检索与 LC 性能相当,而基于块的检索则落后 RAG 在基于对话和一般性问题查询方面具有优势 本文对结果进行了深入分析,请查看。 …

搭建一个本地轻量级且好用的学习TypeScript语言的环境

需求说明 虽然 TypeScript 的在线 Playground 很方便 https://www.tslang.com.cn/play/,但毕竟是在浏览器中使用,没有本地的 IDE 那么顺手。所以我想搭建一个本地类似 Playground 的环境,这样在学习 TypeScript 的过程中,可以更方…

Java中线程中断的几种方式,你了解吗?

Java中线程,可以使用 interrupt() 方法来实现线程的中断,那么,线程中中断的方式有几种呢?接下来,我们将介绍3种不同的线程中断方式,跟随我们的脚步,一起去看看! 目录 第一招&#xf…

GESP5级语法知识(三):双向链表、循环链表

双链表的创建与输出&#xff1a; #include<cstdio> using namespace std; struct node {int data; //data记录这个结点对应元素的值node *next,*pre; //next指向后继 pre指向前驱 }*head,*tail,*p; int n,k; int main() {scanf("%d",&n);headnew no…

前端项目开发 常用的正则表达式

1.校验0-100的数字&#xff0c;仅支持两位小数点 numberCheck(rule, value, callback) {const checkReg /^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/if (checkReg.test(value)) {callback()} else {callback(new Error(0-100的数字&#xff0c;仅支持两位小数点))}},…

homework 2025.01.07 math 6

1选择部分 二填空部分

cursor vip

https://cursor.jeter.eu.org?pf7f4f3fab0af4119bece19ff4a4360c3 可以直接复制命令使用git bash执行即可 命令&#xff1a; bash <(curl -Lk https://gitee.com/kingparks/cursor-vip/releases/download/latest/ic.sh) f7f4f3fab0af4119bece19ff4a4360c3 等待执行完成后…

touch详讲

&#x1f3dd;️专栏&#xff1a;https://blog.csdn.net/2301_81831423/category_12872319.html &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 基本语法 主要功能 常用选项详解 1. …

UE5本地化和国际化语言

翻译语言 工具 - 本地化控制板 Localization Dashboard 修改图中这几个地方就可以 点击箭头处&#xff0c;把中文翻译成英语&#xff0c;如果要更多语言就点 添加新语言 最后点击编译即可 编译完&#xff0c;会在目录生成文件夹 设置界面相关蓝图中设置 切换本地化语言 必须在…

常见的显示器分辨率及其对应的像素数量

显示器的像素数量通常由其分辨率决定&#xff0c;分辨率表示为水平像素数乘以垂直像素数。 720P&#xff08;1280720&#xff09;&#xff1a; 像素数量&#xff1a;约92.16万特点&#xff1a;这是高清标准的一个分辨率&#xff0c;通常用于手机、平板电脑或小型显示器。900P&…

微信小程序实现登录注册

文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…

【C++】18.继承

文章目录 1.继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化 1.3 继承类模板 2.基类和派生类对象赋值转换3.继承中的作用域3.1 隐藏规则&#xff1a;3.2 考察继承作用域相关选择题 4.派生类的默认成员函数4…

PCL 分段线性函数

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设我们有一个分段线性函数,并且我们希望在某个区间内对这个函数进行均匀采样,生成一系列的点。相对通用一些的思路就是对这个函数进行参数化,方法有很多,这在其他的博客中也有提到,不过PCL也为我们提供了一种…

PostgreSQL学习笔记(二):PostgreSQL基本操作

PostgreSQL 是一个功能强大的开源关系型数据库管理系统 (RDBMS)&#xff0c;支持标准的 SQL 语法&#xff0c;并扩展了许多功能强大的操作语法. 数据类型 数值类型 数据类型描述存储大小示例值SMALLINT小范围整数&#xff0c;范围&#xff1a;-32,768 到 32,7672 字节-123INTE…

html + css 顶部滚动通知栏示例

前言 在现代网页设计中&#xff0c;一个吸引人的顶部滚动通知栏不仅能够有效传达重要信息&#xff0c;还能提升用户体验。通过使用HTML和CSS&#xff0c;我们可以创建既美观又功能强大的组件&#xff0c;这些组件可以在不影响网站整体性能的情况下提供实时更新或紧急通知。 本…

Bi-Encoder vs. Cross-Encoder

Bi-Encoder vs. Cross-Encoder Bi-Encoder 和 Cross-Encoder 是两种常见的模型架构&#xff0c;主要用于自然语言处理&#xff08;NLP&#xff09;中的文本匹配、问答、检索等任务。它们的主要区别在于如何处理输入文本以及计算相似度的方式。 1. Bi-Encoder&#xff08;双编…

excel如何将小数转换为百分比

在 Excel 中&#xff0c;将百分比格式的数字取消“%”并恢复为小数&#xff0c;可以按以下几种方法操作&#xff1a; 方法 1&#xff1a;直接更改格式 选中需要取消百分比格式的单元格。点击 **“开始”**选项卡中的 **“数字”**组。将单元格格式从“百分比”改为“常规”或“…

PyQt5 UI混合开发,控件的提升

PromoteLabelTest.py 提升的类 import sys from PyQt5.QtWidgets import QApplication, QWidget,QVBoxLayout,QTextEdit,QPushButton,QHBoxLayout,QFileDialog,QLabelclass PromoteLabel(QLabel):def __init__(self,parent None):super().__init__(parent)self.setText("…

A/B实验之置信检验(一):如何避免误判 (I类) 和漏报 (II类)

假设检验的依据&#xff1a;如何避免误判和漏报 A/B实验系列相关文章&#xff08;置顶&#xff09; 1.A/B实验之置信检验&#xff08;一&#xff09;&#xff1a;如何避免误判和漏报 2.A/B实验之置信检验&#xff08;二&#xff09;&#xff1a;置信检验精要 引言 在数据驱动…

Spring Boot整合Minio实现文件上传

Spring Boot整合Minio后&#xff0c;前端的文件上传有两种方式&#xff1a; 文件上传到后端&#xff0c;由后端保存到Minio 这种方式好处是完全由后端集中管理&#xff0c;可以很好的做到、身份验证、权限控制、文件与处理等&#xff0c;并且可以做一些额外的业务逻辑&#xf…