OpenCV-Python Binding的思维导图,提炼关键点。
11.OpenCV-Python Binding
1 目标
了解:
1.如何生成OpenCV-Python bindings?
2.如何将新的OpenCV模块扩展到Python?
2 OpenCV-Python bindings如何生成?
1. 在OpenCV中,所有算法均以C ++实现。
2.但是这些算法可以从不同的语言(例如Python,Java等)中使用。绑定生成器使这成为可能。
3.这些生成器在C ++和Python之间建立了桥梁,使用户能够从Python调用C ++函数。为了全面了解后台发生的事情,需要对Python / C API有充分的了解。
4. 因此,通过手动编写包装函数将OpenCV中的所有函数扩展到Python是一项耗时的任务。因此,OpenCV以更智能的方式进行操作。
2.1 生成器脚本目录:modules/python/src2
1. OpenCV使用位于modules/python/src2中的一些Python脚本,从C ++头自动生成这些包装器函数。
2.2 自动监测脚本:modules/python / CMakeFiles.txt
1. 首先,modules/python / CMakeFiles.txt是一个CMake脚本,用于检查要扩展到Python的模块。
2. 它将自动检查所有要扩展的模块并获取其头文件。
3. 这些头文件包含该特定模块的所有类,函数,常量等的列表。
2.3 生成器脚本:modules/python/src2/gen2.py
1. 其次,将这些头文件传递到Python脚本modules/python/src2/gen2.py。
2. 这是Python Binding生成器脚本。
3. 它调用另一个Python脚本module/python/src2/hdr_parser.py。
2.4 标头解析器脚本:module/python/src2/hdr_parser.py
1. 这是标头解析器脚本。
2. 此标头解析器将完整的标头文件拆分为较小的Python列表。因此,这些列表包含有关特定函数,类等的所有详细信息。
3. 例