OpenCV 4.12.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() 中调用此函数。