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

news2025/1/11 23:52:41

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

Part I

本文打算分成两部分写:

        第一部分力求用最简单的办法帮助大家直接在VS中查看OpenCV的源码。这种方法最大的优点就是不容易出错,且操作简单。如果只是需要查看OpenCV源码的同学,建议直接用这个方法。

        第二部分才会介绍在自己的项目调用OpenCV库,且依然可以查看源码的方法。


1,下载

OpenCV官网:

Releases - OpenCV

Cmake官网:

Download | CMake


 2,安装

opencv下载后直接解压到一个地方就行了

 

 cmake的安装注意一下这个选项就行了。


 3,用cmake build openCV

3,1 在之前解压缩好的opencv目录下,创建一个新的文件夹"Rebuild_sources"用于保存build后的数据。 

3.2打开刚刚安装好的camke,并选择正确的路径

第一个是我们要build的源文件,来自于openCV官方压缩包中的source文件夹。(注意:这里我们只build source文件夹中的内容)

下面那个where to build the binaries就配置我们刚刚新建的那个文件夹"Rebuild_sources"。

3.3 然后选择 configure

 

3.4 选择对应的VS版本,我的是2022

选择平台x64

 

 然后点击Finish,Cmake就开始自动配置了。

3.5配置完成后会有一些warning,不管他直接点击generate.

 generate完成后,我们直接创建好的"Rebuild_sources"文件夹下就有东西了,找到"OpenCV.sln",然后用VS启动他。

 3.6在VS2022中依次选择生成--->批生成

在“批生成”的窗口中选择ALL_BUILD和INSTALL后,点击生成。

 

 生成中,这个过程大概要持续几分钟。

 

 4,查看源码

在VS中搜索你想看的源码,然后用control+鼠标一级一级点进去就能看到OpenCV中最底层的源码了。

例如,在“整个解决方案”中搜索“undistortImage”。

按住control键不动,用鼠标点进去,就能看到源码了。

 该函数的源码如下:

 如果是没有经过cmake重新build后的opencv,你点进去就找不到函数的定义(如下图,这是我在另一个项目中查看这个函数的提示),即,底层源码。


  (全文完)

作者 --- 松下J27

参考文献(鸣谢):

        1,Download | CMake

        2,OpenCV - Open Computer Vision Library

 版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27 

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

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

相关文章

2.类加载子系统

小碎碎:春风若有怜花意,可否许我再少年。 内存结构概述 ● Class文件 ● 类加载子系统 ● 运行时数据区 ○ 方法区 ○ 堆 ○ 程序计数器 ○ 虚拟机栈 ○ 本地方法栈 ● 执行引擎 ● 本地方法接口 ● 本地方法库 小记 LV : local values 本地&#xff0…

C++day2作业(2023.8.22)

1.定义一个学生的结构体,包含学生的姓名,年龄,成绩,性别,学生的成绩,姓名,定义为私有权限;定义一个学生类型的结构体变量,设置公有函数用于给学生的成绩和名字进行赋值&a…

【AIGC】一款离线版的AI智能换脸工具V2.0分享(支持图片、视频、直播)

随着人工智能技术的爆发,AI不再局限于大语言模型,在图片处理方面也有非常大的进步,其中AI换脸也是大家一直比较感兴趣的,但这个技术的应用一直有很大的争议。 今天给大家分享一个开源你的AI换脸工具2.0,只需要一张所需…

css滚动条的使用

前言: css滚动条的使用。 1、使用案例1:背景不要,只展示一个滚动条 如果是默认整体,::就够用了,如果是某个元素,可以 .abc:: ,如果是scss这种的 &:: ::-webkit-scrollbar {width: 6px; } ::-webkit…

遥感数据与作物生长模型同化及在作物长势监测与估产中的应用

基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具,可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系,为不同条件下作物生长发育及产量预测、栽培管理、环境评价以及未来气候变化评估等提供了…

JVM及垃圾回收机制

文章目录 1、JVM组成?各部分作用?1.1 类加载器(Class Loaders)1.2 运行时数据区(Runtime Data Area)1.3 执行引擎(Execution Engine)1.4 本地方法接口(Native Interface&…

certbot自动续期

certbot是一个免费的开源项目是EFF的一部分,自动化的工具,用于帮助管理和续期SSL/TLS证书。它可以安装、配置和自动续期证书。 1、安装 snapd 将 EPEL 存储库添加到您的 CentOS 安装中。输入y回车继续安装 sudo yum install snapd; sudo systemctl en…

【方案】基于AI边缘计算的智慧工地解决方案

一、方案背景 在工程项目管理中,工程施工现场涉及面广,多种元素交叉,状况较为复杂,如人员出入、机械运行、物料运输等。特别是传统的现场管理模式依赖于管理人员的现场巡查。当发现安全风险时,需要提前报告&#xff0…

互联网企业实现客户成功的前提是:全程在线答疑

在当今数字化时代,互联网企业成功的关键之一是能够提供全程在线答疑的服务。无论是通过官网博客、帮助中心还是FAQ(Frequently Asked Questions),为用户提供高效、及时的解决方案,已成为企业获得用户信任和满意度的重要…

qt信号槽同步问题

目录 信号槽: 注意事项: 具体例子: 线程安全问题的例子: 信号槽: 在Qt编程中,信号(Signal)和槽(Slot)是一种用于在对象之间进行通信的机制。信号用于发出…

Bandicam 班迪录屏 安装使用教程

Bandicam是一款非常流行的录屏软件,可以在Windows系统上轻松录制游戏或其他应用程序的视频,支持高清、压缩方式选择、多媒体编码、按键记录、水印等。下面是Bandicam安装使用教程。 1、下载Bandicam安装程序 在官方网站或其他可靠的下载站点上下载Band…

网络常见设备

目录 1.网络常见设备 1.交换路由设备 2.网络安全设备 3.无线网络设备 4.网络设备生产厂商 1.网络常见设备 当用户通过电子邮件给远方的朋友送去祝福时,一定不会想到这封邮件在网络中将会经历怎样复杂的行程。就好比将一封真实的信件投到邮局后,无法了解…

solidity0.8.0的应用案例13:数字签名及应用:NFT白名单

以太坊中的数字签名ECDSA,以及如何利用它发放NFT白名单 代码中的ECDSA库由OpenZeppelin的同名库简化而成。 数字签名 如果你用过opensea交易NFT,对签名就不会陌生。下图是小狐狸(metamask)钱包进行签名时弹出的窗口,它可以证明你拥有私钥的同时不需要对外公布私钥。 …

主动式和被动式电容笔区别是什么?开学季电容笔推荐

被动式电容笔与主动式电容笔之间最大的不同之处在于,主动电容笔的应用范围更广泛,可以与各种类型的电容类屏幕进行匹配。随着人们对其理解的不断深入,其应用范围也在不断扩大。还有就是,国内的平替电容笔,也在不断的改…

ElasticSearch简介、安装、使用

一、什么是ElasticSearch? Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。 Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。 Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监…

ResNet简介

ResNet (Residual Network) 此网络于2015年,国人何先生提出,用于解决随着深度学习的层数加深造成的网络退化现象和梯度消失、梯度爆炸。 问题1 退化现象 当深度学习的各项指标能够随着训练轮数收敛的情况下,网络的层数增强未能像理论一样&…

数据治理在大模型时代的实践和创新

数据治理在大模型时代的实践和创新 随着人工智能技术的飞速发展,大模型已经成为了许多领域中取得突破性进展的关键。然而,这些大模型的成功背后往往离不开高质量的数据支持和有效的数据治理。数据治理在大模型时代中变得愈发重要,它不仅仅是…

Go 1.21中值得关注的几个变化

美国时间2023年8月8日,Go团队在Go官博上正式发布了1.21版本[2]! 早在今年4月末,我就撰写了文章《Go 1.21新特性前瞻[3]》,对Go 1.21可能引入的新特性、新优化和新标准库包做了粗略梳理。 在6月初举办的GopherChina 2023大会上[4]&…

机器学习算法的选择和优化技巧

文章目录 机器学习算法的选择1. 问题类型:2. 数据规模:3. 特征空间:4. 数据质量: 机器学习算法的优化技巧1. 特征工程:2. 超参数调优:3. 集成方法:4. 模型调优: 代码示例&#xff1a…