如何高效浏览OpenCV仓库理解代码?

How to efficiently browse OpenCV repository to understand the code?

本文关键字:代码 OpenCV 浏览 何高效 高效      更新时间:2023-10-16

我对编码比较陌生,如果我的问题对你来说很简单,我深表歉意。

我正在尝试理解OpenCV代码以便能够添加我的贡献(主要是将2D工具转换为3D,因为它对我的机器学习项目和医疗项目很有用(。还有一些额外的好奇心,因为我喜欢了解事物是如何运作的。

1(以高斯模糊方法为例。当我在 Python 中调用它时会发生什么?也就是说,Python 代码如何绑定到C++代码?当我浏览存储库时,有所有C++文件,但我找不到它在哪里完成。当我用 pip 安装 cv2 时,一切都是自动的,但我想了解这个过程。

2(如果我想了解整个GaussianBlur算法,我也不熟悉C++浏览,那么我应该如何继续检索使用的文件(方法和继承的类(。 我在另一个答案上找到了 https://github.com/opencv/opencv/blob/9c23f2f1a682faa9f0b2c2223a857c7d93ba65a6/modules/imgproc/src/smooth.cpp#L4085 包含该方法的答案,但是我如何自己找到任何方法呢?为什么它不在主文件夹中,而是在 blob 文件夹中?那么如何找到这个调用的其他方法或类呢?

3(这更像是一个好奇的问题,因为我不熟悉makefiles,但是Python和C++之间的绑定是什么时候完成的?当我使用 pip 安装 OpenCV 时,它是自动完成的,但我想了解这个过程。

非常感谢您的回答!我将不胜感激任何教程,因为我在询问之前已经谷歌了很多,当然,但没有找到可以帮助我的东西。

C++您必须下载库并在编译和链接过程中链接它们(从源代码创建可执行文件时(。

C++绑定是通过C++ 的python.h库完成的。 使用此绑定,将为 Python 创建 OpenCV 模块。

要学习高斯模糊等,您可以学习图像处理

Opencv 的方法保存在各自的文件中。 就像OpenCV GUI 的opencv2/highgui.hpp一样imshow. 您可以使用#include <opencv2/highgui.hpp>将它们导入C++(方法被分离到不同的文件中,以减少导入不必要的方法(。

CMake 就像一种脚本语言(它是一种工具(,您可以在其中编写有关该工具应如何从源代码构建可执行文件的脚本

入门教程在这里