OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
并行后端 API

详细描述

以下 API 用于解决多个线程池(来自不同的多线程框架)过度占用 CPU 资源的问题。当 OpenCV 编译的线程框架与用户应用程序框架不同时,这是一个常见问题。

应用程序可以将其自己的实现替换为 OpenCV 的 parallel_for() 后端(以重用应用程序的线程池)。

后端 API 使用示例

Intel TBB

OpenMP

插件支持

运行时配置选项

类  cv::parallel::ParallelForAPI
 
类  cv::parallel::openmp::ParallelForBackend
 
类  cv::parallel::tbb::ParallelForBackend
 

函数

void cv::parallel::setParallelForBackend (const std::shared_ptr< ParallelForAPI > &api, bool propagateNumThreads=true)
 替换 OpenCV parallel_for 后端。
 
bool cv::parallel::setParallelForBackend (const std::string &backendName, bool propagateNumThreads=true)
 更改 OpenCV parallel_for 后端。
 

函数文档

◆ setParallelForBackend() [1/2]

void cv::parallel::setParallelForBackend ( const std::shared_ptr< ParallelForAPI > & api,
bool propagateNumThreads = true )
Python
cv.parallel.setParallelForBackend(backendName[, propagateNumThreads]) -> retval

#include <opencv2/core/parallel/parallel_backend.hpp>

替换 OpenCV parallel_for 后端。

应用程序可以将其自己的实现替换为 OpenCV 的 parallel_for() 后端。

注意
此调用不是线程安全的。请考虑在任何其他 OpenCV 处理函数之前(并且没有任何其他创建的线程)从main()调用此函数。

◆ setParallelForBackend() [2/2]

bool cv::parallel::setParallelForBackend ( const std::string & backendName,
bool propagateNumThreads = true )
Python
cv.parallel.setParallelForBackend(backendName[, propagateNumThreads]) -> retval

#include <opencv2/core/parallel/parallel_backend.hpp>

更改 OpenCV parallel_for 后端。

注意
此调用不是线程安全的。请考虑在任何其他 OpenCV 处理函数之前(并且没有任何其他创建的线程)从main()调用此函数。