并行处理
一些 OpenCV 算法可以使用多线程来加速处理。OpenCV 可以使用线程后端之一进行构建。
后端 | 选择 | 违约 | 平台 | 描述 |
---|---|---|---|---|
线程 | WITH_PTHREADS_PF |
上 | 类 Unix | 基于 pthreads 库的默认后端可在 Linux、Android 和其他类 Unix 平台上使用。线程池是在OpenCV中实现的,可以通过环境变量进行控制。有关详细信息,请查看 modules/core/src/parallel_impl.cpp 文件中的源代码。OPENCV_THREAD_POOL_* |
并发 | 不适用 | 上 | 窗户 | 并发运行时在 Windows 上可用,除非启用了其他后端,否则将在支持的平台上打开。 |
最大公约数 | 不适用 | 上 | 苹果 | Grand Central Dispatch 可在 Apple 平台上使用,除非启用其他后端,否则将自动打开。使用全局系统线程池。 |
待定 | WITH_TBB |
关闭 | 倍数 | 线程构建块是一个用于并行编程的跨平台库。 |
OpenMP | WITH_OPENMP |
关闭 | 倍数 | OpenMPAPI 依赖于编译器支持。 |
HPX型 | WITH_HPX |
关闭 | 倍数 | 高性能 ParallelX 是一个实验性的后端,更适合多处理器环境。 |
-
注意
OpenCV 可以从 GitHub 下载和构建 TBB 库,此功能可以通过选项启用。
BUILD_TBB
线程插件
从 4.5.2 版本开始,OpenCV 支持动态加载的线程后端。目前只支持单独的编译过程:首先,您必须使用一些默认的并行后端(例如 pthreads)构建 OpenCV,然后构建每个插件并将生成的二进制文件复制到 lib 或 bin 文件夹中。
选择 | 违约 | 描述 |
---|---|---|
PARALLEL_ENABLE_PLUGINS | 上 | 启用插件支持,如果禁用此选项,OpenCV 将不会尝试加载任何内容 |
查看 OpenCV 安装概述,了解独立插件构建说明。
GUI 后端(highgui 模块)
OpenCV 依赖于各种 GUI 库进行窗口绘制。
选择 | 违约 | 平台 | 描述 |
---|---|---|---|
WITH_GTK |
上 | Linux操作系统 | GTK 是 Linux 和类 Unix 操作系统中的常用工具包。默认情况下,如果找到,将使用版本 3,可以使用该选项强制使用版本 2。WITH_GTK_2_X |
WITH_WIN32UI |
上 | 窗户 | WinAPI 是 Windows 中的标准 GUI API。 |
不适用 | 上 | macOS操作系统 | Cocoa 是 macOS 中使用的框架。 |
WITH_QT |
关闭 | 跨平台 | Qt是一个跨平台的GUI框架。 |
-
注意
使用 Qt 支持编译的 OpenCV 启用了高级 highgui 界面,有关详细信息,请参见 Qt New Functions。
OpenGL的
WITH_OPENGL
(默认:OFF)
OpenGL 集成可用于绘制具有以下后端的硬件加速窗口:GTK、WIN32 和 Qt。并启用与 OpenGL 的基本互操作性,有关详细信息,请参阅 OpenGL 互操作性和 OpenGL 支持。
HighGUI 插件
从 OpenCV 4.5.3 开始,GTK 后端可以构建为动态加载的插件。可以使用以下选项来控制此机制:
选择 | 违约 | <
---|