目录
前言
本篇博客主要讲解的是如何搭配在线文档,在编译好的代码中查阅具体的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函数