用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法

Part II

如何下载和安装openCV和Cmake可以看这篇文章。

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I_松下J27的博客-CSDN博客

下面我们要详细介绍的是如何在自己的项目中调用可查看底层源码的OpenCV库。


1,在解压缩后的opencv目录下,新建一个文件夹“opencv_build”

 

2,打开cmake,分别选择对应的源目录和保存cmake build结果的目录。

 3,单机configure,选择对应的VS版本和x64平台。

 单击Finish后,等待camke自己去配置。

4,配置完成。

所有配置过程中出现的错误都会保存在一个“CMakeDownloadLog”的文件中。 

 

 

 5,消除configure中遇到的问题

打开这个log,我们一个个的解决。

5.1,ippicv_2021.8_win_intel64_20230330_general.zip

先看第一个(看不清的点击图像放大看),复制他给的这个网址,然后下载下来一个叫“ippicv_2021.8_win_intel64_20230330_general.zip”的文件。

 把这个文件放在.cache文件夹下。

 然后再把这个文件改成他说的这个“71e4f......”文件名后,并放在相应目录下。

替换掉原来的同名文件 

 然后在重新点击configure,并查看最新生成的log。

 这时,系统提示mach上了,说明第一个问题解决了。

 5.2,log显示缺少这个文件"v0.1.2a.zip"

 同样,去log中提供的网址下载,更名后放到他指定的目录下。

 然后重新执行configure,并查看新的log,发现第二个问题也修复了。

5.3 找不到opencv_videoio_ffmpeg.dll

根据系统提供的网址下载下来后,更名,覆盖.cache\ffmpeg中的旧文件。

并把未改名的源文件放到.cache的目录下。 

 

5.4 opencv_videoio_ffmpeg_64.dll

操作同上

 

 成功,就剩最后一个了

5.5 ffmpeg_version.cmake

这个文件的下载跟前面的几个都不一样,在网页空白处点击鼠标右键,选择另存为。

 把下载后的文件,重命名为这个文件名,并保存到指定的目录中。

同样,更换文件名,并放在这个目录下。 

 

 单击configure,log显示全部通过了。

6,把cmake的列表中,找到opencv_world并打勾。然后选择generate。

 

 generate成功后,在之前创建的“opencv_build”文件夹中会出现一个叫“OpenCV.sln”的文件。

7,打开OpenCV.sln,并用VS编译该项目

7.1,打开后,确认当前的运行环境为Debug+x64模式,然后依次点击生成——>生成解决方案

实际上如果你不做任何选择的话,系统默认是在生成“ALL_BUILD”的解决方案。

 耐心等待VS编译,编程成功后系统会有提示。

7.2 鼠标右键单击INSTALL选择生成。

编译成功后会在我们自己创建的 “opencv_build”文件夹中,新增一个文件夹“install”。

 这一步的目的是把我们未来调用opencv库时所需要的所有文件都放到这个文件夹中,方便将来用的时候好找。

7.3, 把前面的两步7.1和7.2再来一遍,之前我们都是debug+x64模式下生成的,从这里开始改成release+x64模式。

7.3.1此处选择Release

7.3.2 此处选择Release选择生成——>生成解决方案。 

 7.3.3 用同样的方式再次生成“INSTALL”。 

 

 

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

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

相关文章

Seaborn数据可视化(三)

1.绘制直方图 使用displot()绘制直方图。 import seaborn as sns import numpy as np import matplotlib.pyplot as plt# 生成随机数据 np.random.seed(0) data np.random.randn(1000)# 使用displot绘制直方图 sns.displot(data, bins10, kdeTrue)# 展示图形 plt.show() 结…

国内ChatGPT对比与最佳方案

很久没写内容了,主要还是工作占据了太多时间。简单分享下我这段时间的研究吧,由于时间仓促,有很多内容没有具体写,请自行到我分享的网站体验查看。 前言 ChatGPT 的出现确实在很大程度上改变了世界。许多人已经亲身体验到了ChatGPT作为一个…

关于打包多模块SpringBoot项目并通过宝塔上传服务器

打包 —— 如何打包多模块项目,参考b站up主:[喜欢编程的代先生] 的视频 总结:1. 对着视频里看一下父模块和各个子模块pom.xml文件关于打包工具的依赖是否正确。2. 从最底层开始打包,逐层向上,最后再合并打包。 部署 …

Git拉取分支、基于主分支创建新的开发分支、合并开发分支到主分支、回退上一次的merge操作

系列文章目录 第1章 Git拉取分支、基于主分支创建新的开发分支、合并开发分支到主分支、回退上一次的merge操作 文章目录 系列文章目录一、拉取分支二、如何从master分支创建一个dev分支三、如何将dev分支合并到master分支四、如何回退上一次的merge 一、拉取分支 项目文件夹…

Newsprk Newspaper新闻报纸WordPress主题

Newsprk Newspaper新闻报纸WordPress主题对于任何使用 WordPress 技术构建的新闻和杂志网站来说都是一个有吸引力且时尚的主题。Newsprk – 报纸 WordPress 主题非常适合任何新闻/杂志或与以下类别匹配的任何特定业务,如博客、体育、时尚、科学、足球、政治、视频、…

数据结构——队列(C语言)

需求:无 本篇文章将解决一下几个问题: 队列是什么?如何实现一个队列?什么场景下会用队列? 队列的概念: 队列:一种只允许一端进行插入数据操作,在另一端进行删除操作的特殊线性表。…

T599聚合物电容器:在汽车应用中提供更长的使用寿命的解决方案

自从电子技术被引入汽车工业以来,汽车的技术含量一直在提升。诸多技术被应用在汽车上,使汽车的形象更接近于轮子上的超级计算机。更多传感器、更强大的计算能力和电力被装载到汽车上,汽车应用中的电子产品数量正在迅速增长。随着电动汽车和自…

优思学院|公司质量的重要性与六西格玛的应用

在现代商业环境中,公司的成功与否往往取决于其产品或服务的质量水准。质量不仅是公司的一个重要组成部分,还直接影响着公司的声誉和消费者认可度。保持高质量的商品和服务有助于建立客户信任,维护品牌形象,并确保长期的业务增长。…

品牌渠道价格治理的标准和方法

当品牌渠道中有低价、窜货链接时,则需要进行价格的治理,因为低价一旦放任不管,将使渠道秩序更加混乱,会引起更多经销商的低价跟价,同时还可能影响品牌口碑,降低消费者的购买黏性,所以治理低价、…

攻防世界-simple_js

原题 解题思路 js就看源代码,pass是数字,下面还有一串十六进制的编码。 进制转换就是,也是一串数字,那把这两串数字都拿去转ASCII码。 s1 [55,56,54,79,115,69,114,116,107,49,50] s2 [70,65,85,88,32,80,65,83,83,87,79,82,68…

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图)效果一览基本介绍程序…

隧道vs免费爬虫ip:为何要选择隧道爬虫ip?

在网络爬虫的世界中,爬虫ip是一项关键技术,它可以帮助我们隐藏身份、突破限制、提高抓取效率。但是,在选择爬虫ip时,我们常常会面对隧道爬虫ip和免费爬虫ip之间的抉择。在本文中,我们将探讨隧道爬虫ip相对于免费爬虫ip…

vue:this和that的理解

当我们进入公司的时候会发现一个很常见的情况,就是你的前开发者会常用这么一个变量:that、self… 为什么会用到that、self呢,小编是这么理解的,this指向的是当前的对象,而that、self是临时的变量,为了临时存…

SQL注入之联合查询

文章目录 联合查询是什么?联合查询获取cms账号密码尝试登录 联合查询是什么? 适用数据库中的内容会回显到页面中来的情况。联合查询就是利用union select 语句,该语句会同时执行两条select 语句,实现跨库、跨表查询。 必要条件 两…

基于AVR128单片机世界电子时钟的设计

一、系统方案 上电初始化完成系统初始化,液晶滚动显示北京、莫斯科、东京、伦敦、巴黎、纽约等六个城市的标准时间,显示的内容包括地区名及相应地区的年、月、日、星期、时、分、秒。 使用K1按键控制滚动显示或稳定显示某个地区的时间。 使用K3、K4、K5按…

net start Mysql 启动服务时 ,显示“Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误

一、问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二、原因 由于mysql的默认端口是3306,因此在启动服务的时候,如果此端口被占用,就会出…

Java使用MyBatis、JDBC批量插入数据

使用MyBatis、JDBC做大量数据插入 准备 表结构 CREATE TABLE tb_users (id varchar(255) NOT NULL,name varchar(100) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;MyBatis配置文件 <?xml version"1.0" enc…

Ribbon:使用Ribbon实现负载均衡

Ribbon实现的是实线走的 建立三个数据库 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.7.25-log : Database - db01 ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQ…

什么是Nginx HA?

什么是Nginx HA 1.1 什么是Nginx HA?1.2 高可用性的类型1.3 理解Nginx HA 示例1.4为什么高可用性很重要&#xff1f;1.5 高可用是如何实现的&#xff1f;1.6 如何支持高可用性?1.7 最佳实践&#xff1a;高可用性 1.1 什么是Nginx HA? 高可用性(HA) 是指系统通常通过使用内置…

万宾科技22款产品入选《城市生命线安全工程监测技术产品名录》

2023年8月17日-18日&#xff0c;由北京市地下管线协会主办的2023首届城市生命线安全与发展大会在北京召开&#xff0c;本次大会汇聚中央及地方政府主管领导、院士专家、行业领袖、龙头代表、产业精英等。 大会聚焦安全监管智慧平台和燃气爆炸、城市内涝、地下管线交互风险、第三…