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

相关推荐
用户51914958484511 分钟前
CVE-2024-10793 WordPress插件权限提升漏洞利用演示
人工智能·aigc
chaors23 分钟前
从零学RAG0x01之向量化
人工智能·aigc·ai编程
chaors26 分钟前
从零学RAG0x02向量数据库
人工智能·aigc·ai编程
陈少波AI应用笔记28 分钟前
硅谷龙虾大战技术拆解:当AI长出爪子
人工智能
冬奇Lab1 小时前
一天一个开源项目(第39篇):PandaWiki - AI 驱动的开源知识库搭建系统
人工智能·开源·资讯
大模型真好玩2 小时前
LangChain DeepAgents 速通指南(三)—— 让Agent告别混乱:Tool Selector与Todo List中间件解析
人工智能·langchain·trae
孟祥_成都2 小时前
【全网最通俗!新手到AI全栈开发必读】 AI 是如何进化到大模型的
前端·人工智能·全栈
牛奶3 小时前
AI辅助开发的基础概念
前端·人工智能·ai编程
东坡肘子3 小时前
OpenClaw 不错,但我好像没有那么需要 -- 肘子的 Swift 周报 #125
人工智能·swiftui·swift
风象南10 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端