深入浅出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函数

相关推荐
像风没有归宿a1 小时前
AI驱动金融:智能投顾、风控与反欺诈的实战案例
人工智能
聆风吟º1 小时前
openEuler实战:AI场景进程调度性能全面验证
人工智能·ai·openeulei
阿杰学AI1 小时前
AI核心知识37——大语言模型之ASI(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·agi·asi·超人工智能
数据门徒1 小时前
《人工智能现代方法(第4版)》 第9章 一阶逻辑中的推断 学习笔记
人工智能·笔记·学习·算法
nix.gnehc1 小时前
Agentic AI
人工智能·agentic ai
xqlily1 小时前
PyTorch:深度学习研究的核心引擎(上)
人工智能·pytorch·深度学习
虎头金猫1 小时前
从杂乱到有序,Paperless-ngx 加个cpolar更好用
linux·运维·人工智能·docker·开源·beautifulsoup·pandas
roman_日积跬步-终至千里1 小时前
【计算机视觉(6)】边缘与直线检测基础篇:从Canny到Hough变换
人工智能·计算机视觉
Keep__Fighting1 小时前
【机器学习:决策树】
人工智能·算法·决策树·机器学习·scikit-learn