深入浅出OpenCV:查阅OpenCV的实现源码

目录

1.OpenCV在线文档

2.查阅OpenCV中对象和函数的声明

3.查阅OpenCV中对象和函数的实现


前言

本篇博客主要讲解的是如何搭配在线文档,在编译好的代码中查阅具体的OpenCV的实现源码,该博客属于过渡类型的博客,主要是方便读者后续在阅读OpenCV相关文件时提供参考。


OpenCV在线文档

OpenCV在线文档如下:

OpenCV在线文档https://docs.opencv.ac.cn/4.12.0/ 为了方便在本地查阅源码文件,我们还需要使用到Everything文件搜索工具和Notepad++文本编译器。下载安装和使用教程可以参考以下博客:

高效工具实战指南:Everything文件搜索工具https://blog.csdn.net/weixin_67035108/article/details/155236387?spm=1001.2014.3001.5502高效工具实战指南:Notepad++文本编辑器https://blog.csdn.net/weixin_67035108/article/details/155313671?spm=1001.2014.3001.5501 在本地配置好OpenCV,并且安装成功Everything文件搜索工具和Notepad++文本编辑器后,便可以快速检索OpenCV的相关文件


查阅OpenCV中对象和函数的声明

本小节主要讲解如何查阅OpenCV中对象和函数的声明,并以cv::Mat作为例子作为进行参考。首先我们需要打开第一小节中的官方地址,在该文档地址中左上角可以选择OpenCV的版本,中间区域则主要是讲解了OpenCV中各个模块的作用,右上角的搜索框主要是方便我们检索数据,具体如下图:

图1.官方文档介绍

以查找Mat类型的声明为例,我们只需要在右上角填入Mat即可检索出关于Mat的相关信息,我们通过点击cv::Mat选项跳转到感兴趣的文档。

图2.检索Mat类型信息

在我们跳转后的文档中,我们可以看到一个UML中的类图显示了关于cv::Mat类型与其他基础类型的关系,并且左上角显示了cv::Mat类型所在的文件路径是opencv2/core/mat.hpp,后续我们将使用Everything文件搜索工具和Notepad++文本编辑器在本地文件中进行定位。

图3.检索后的文档信息

除此之外,我们下滑还可以看到cv::Mat类型中定义的一些公共类型和公共成员

图4.cv::Mat类中相关信息

在最后面还可以查阅到关于cv::Mat中的详细使用代码

图5.cv::Mat详细描述

现在让我们使用Everything文件搜索工具检索本地相关的文件,这里我们输入的是opencv2\core\mat.hpp,路径中的斜杆要符合Windows系统的要求,并且路径得是opencv2/core路径下的mat.hpp文件,因为存在相同名称的文件但是位于的是sources文件夹路径下。

图6.使用Everything检索本地相关文件

在我们找到相关路径以后,使用Notepad++文本编辑器打开路径当作工作区,并且打开mat.hpp文件使用查找功能定位具体的cv::Mat类型的位置。

图7.定位本地文件中的cv::Mat类型声明


查阅OpenCV中对象和函数的实现

在OpenCV官网中查到的对象或者接口,一般告诉你的文件是以.hpp为后缀的,该后缀主要是存储了函数和对象的定义而不是实现,具体的实现代码是在sources/modulse路径下。具体可以参考下图:

图8.源码路径

如果我们需要查找OpenCV中的边缘检测函数Canny的实现,我们可以使用Notepad++打开sources/modulse作为工作区,然后使用全局查找即可找到具体的实现,具体参考下图:

图9.使用Notepad++查找Canny函数的实现

而在官方文档中的Cannay边缘检测函数的定义如下图所示,可能会有些出入所以在查找的过程中会有些麻烦,但是我们可以借助相关的Ai进行辅助查找。

图10.官方文档定义的Cannay函数

相关推荐
不要生病了1 分钟前
Through Their Eyes:用简单对齐实现跨被试与跨数据集视觉脑解码
人工智能·深度学习
2601_962304252 分钟前
AI照片上色新手好上手:怎么调出自然肤色?
人工智能
临床数据科学和人工智能兴趣组4 分钟前
399元现在超值!学R语言,订阅我们专栏就够了,包括了所有的内容,不断更新!
人工智能·数据挖掘·r语言·r语言-4.2.1·临床研究
sjh7524229695 分钟前
Deepseek Harness的四种模式
人工智能
一比七品牌咨询5 分钟前
科技企业品牌定位:如何把技术优势转化为品牌优势?
大数据·人工智能·品牌策划·品牌全案策划·深圳品牌策划公司·品牌定位
一木 之林6 分钟前
深度学习-计算优化与分布式训练-111-128
人工智能·深度学习
BingoGo9 分钟前
一个ChatGPT 超级省额度方案!用 TaskQuay 连接网页 ChatGPT 和本地 Codex
人工智能·后端
万象新讯10 分钟前
自筹资金、加速器孵化和获得融资的创业公司,可以分别申请哪些AWS扶持政策?
人工智能
Thomas.Sir10 分钟前
第49课:TensorFlow|项目性能调优全方案【训练提速、推理提速、资源占用优化】
人工智能·python·tensorflow