c++ - 将 C++ OpenCV 代码包装为 Python

标签 c++ python opencv numpy swig

我有一个用 Python 编写的演示应用程序。它使用了大量现有的 C++ 代码(由我编写),这些代码依赖于 OpenCV 进行图像处理。目前,Python 和 C++ 之间的通信是通过文件 I/O 和子进程调用来完成的,效率不太高。包装 C++ 代码以便从 Python 调用它的最佳方法是什么?

C++ 代码太多,无法考虑将其移植到 Python,因此这并不是一个真正的选择。

很久以前,Python OpenCV 包装器是用 SWIG 编写的,但看起来最新版本的包装器完全不同。谁能指出我正确的方向?

最佳答案

有两种方法可以使 Python 程序直接与 C/C++ 程序交互:

  1. 仅使用 C-API 将 C/C++ 代码包装在 DLL 中。然后,使用ctypes 在 DLL 中调用 C 函数。这种方式的优点是您不需要包含/链接任何其他库。

  2. 通过添加新的 python 模块来扩展 python。您可以使用boost python轻松创建 python 模块。这种方式的优点是您不需要将代码包装到 C-API。

关于c++ - 将 C++ OpenCV 代码包装为 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10976464/

相关文章:

c++ - std::declval<T>()、SFINAE 和删除的构造函数

C++ fstream 在 .txt 文件上总是失败

c++ - 具有结构的简单程序。获取此 : invalid operands of types 'void' and '<unresolved overloaded function type>' to binary 'operator

c++ - 复制构造函数相关问题(原生 C++)

python - 如何在 macOS 上连接 Pycharm 和麦克风

Python语法错误?? (值错误除外)

python - 具有上限/下限的 Numpy 自定义 Cumsum 函数?

python - 如何从两幅相似图像中提取噪声?

python - 如何绘制颜色列表?

image-processing - 将向量与图像中的边缘进行关联