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

相关推荐
乌恩大侠15 分钟前
从 5G 通信到厘米级感知:基于 NVIDIA Aerial、SRS 与 UL-TDOA 构建 6G 无线定位实验平台
人工智能·5g·电信大模型
云和数据.ChenGuang7 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
西西木科技丨Shopify开发机构8 小时前
CalDigit TS4案例:AI产品图的Shopify整站接入与验收
人工智能·shopify·独立站
2601_965448878 小时前
AI视频制作:做系列节气民俗视频音色不统一,AI 音色克隆省事的方法
人工智能·机器学习·音视频
美狐美颜SDK开放平台8 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
HRaitest8 小时前
秋招技术岗招聘提效:三类 AI 招聘方案的技术底层与选型逻辑
大数据·人工智能·求职招聘·ai-native
天远数科8 小时前
零信任架构实战:基于天远企业股权变更构建自动化商业银行对公授信存续期股权异动与资产抽逃预警网关
运维·人工智能·架构·自动化
车软学堂9 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
海盗12349 小时前
AI 新闻日报 10-28:Atria Dawn 完整版开源、Cursor Agent SDK 转正、Genie 4 实时世界模型
人工智能·机器人·开源·人工智能aigc
志尊宝9 小时前
AI原生前端开发(035):AI时代的工程化最佳实践总结
人工智能·ai-native