OpenCV-Python绑定如何工作及如何扩展新模块到Python

Posted 程序媛一枚~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV-Python绑定如何工作及如何扩展新模块到Python相关的知识,希望对你有一定的参考价值。

OpenCV-Python绑定如何工作及如何扩展新模块到Python

这篇博客将介绍 OpenCV-Python 绑定是如何生成的以及如何将新的OpenCV模块扩展到Python。

在 OpenCV 中,所有算法都是用 C++ 实现的。但是这些算法可以用于不同的语言,如 Python、Java 等。绑定生成器使这成为可能。 这些生成器在 C++ 和 Python 之间架起了一座桥梁,使用户能够从 Python 调用 C++ 函数。

1 OpenCV-Python 绑定的基本版本

  1. OpenCV提供了cv2 模块;
  2. 当调用一个函数时,比如在 Python 中 res = equalizeHist(img1,img2) ,传递了两个 Numpy 数组,一个Numpy数组为入参,期望另一个 Numpy 数组作为输出;
  3. 调用时numpy数组被转换为cv::Mat,然后在C++中调用equalizeHist()函数;
  4. 最终结果 res 将被转换回 Numpy 数组。

简而言之,几乎所有的操作都是在 C++ 中完成的,因此几乎拥有与 C++ 相同的速度。

2 如何将OpenCV的新模块扩展到 Python?

头文件解析器根据添加到函数声明中的一些包装宏来解析头文件。枚举常量不需要任何包装宏。它们会自动包装。但是剩下的函数、类等需要包装宏。

了解OpenCV 中可用的主要扩展宏。通常,开发人员必须将适当的宏放在适当的位置。其余部分由生成器脚本完成。

参考

以上是关于OpenCV-Python绑定如何工作及如何扩展新模块到Python的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 中的绑定如何工作?

如何扩展CPU绑定的Twisted应用程序?

Android 数据绑定库 vs Kotlin Android 扩展

如何使用敲除数据绑定在新选项卡中打开按钮链接

利用Anaconda安装python后,如何安装opencv-python

如何使用 opencv-python 创建缩略图?