【发布时间】:2019-10-14 09:22:10
【问题描述】:
我对编码比较陌生,如果我的问题对您来说直截了当,我深表歉意。
我正在尝试理解 OpenCV 代码以便能够添加我的贡献(主要是将 2D 工具转换为 3D,因为这对我的机器学习项目和医疗项目很有用)。还有一些额外的好奇心,因为我喜欢了解事情是如何运作的。
1) 以 GaussianBlur 方法为例。当我在 Python 中调用它时会发生什么?即,Python 代码如何绑定到 C++ 代码?当我浏览存储库时,有所有 C++ 文件,我找不到它在哪里完成。当我用 pip 安装 cv2 时,一切都是自动的,但我想了解这个过程。
2)如果我想了解整个 GaussianBlur 算法,我也不熟悉 C++ 浏览,那么我应该如何继续检索使用的文件(方法和继承的类)。 我在另一个答案中发现https://github.com/opencv/opencv/blob/9c23f2f1a682faa9f0b2c2223a857c7d93ba65a6/modules/imgproc/src/smooth.cpp#L4085 包含该方法,但是我如何自己找到任何方法?为什么它不在主文件夹中,而是在 blob 文件夹中?那么如何找到这个调用的其他方法或类呢?
3) 这更像是一个好奇的问题,因为我不熟悉 makefile,但是 Python 和 C++ 之间的绑定何时完成?当我使用 pip 安装 OpenCV 时,它会自动完成,但我想了解这个过程。
非常感谢您的回答!我会很感激任何教程,因为我在问之前已经用谷歌搜索了很多,当然,但没有找到什么可以帮助我自己。
【问题讨论】:
-
请问你用的是什么IDE?
-
我只是在浏览 GitHub 存储库。否则,我使用 Jupyter Notebook for Python 和 Visual Studio Code for C++
-
您应该克隆代码以在您的 IDE 中打开它。它将大大简化浏览代码的过程。要了解 c++ 代码,您可以搜索要查找的函数,例如
ctrl + F->gaussian。您将找到函数定义并可以通读代码。如果您在该功能中发现有趣的内容,您只需按right mouse button,然后按go to definition -
还可以查看here 以了解如何从 c++ 创建 python 模块以及如何在 python 内部使用它