setNumThreads(x) 是并行化我的 OpenCV 代码吗?

MSO*_*MSO 6 opencv

我真的想知道使用 OpenCV 是否setNumThreads();真的允许我的代码并行运行。我在互联网上搜索了很多,但没有找到我的问题的任何答案。

有人对我的问题有答案吗?

mig*_*lao 4

效果很大程度上取决于您在 cmake configure 上选择的配置选项,例如CMakeLists.txt ,以及不同配置选项的捕获:

/* IMPORTANT: always use the same order of defines
   1. HAVE_TBB         - 3rdparty library, should be explicitly enabled
   2. HAVE_CSTRIPES    - 3rdparty library, should be explicitly enabled
   3. HAVE_OPENMP      - integrated to compiler, should be explicitly enabled
   4. HAVE_GCD         - system wide, used automatically        (APPLE only)
   5. HAVE_CONCURRENCY - part of runtime, used automatically    (Windows only - MSVS 10, MSVS 11)
*/
Run Code Online (Sandbox Code Playgroud)

有了这些,你就可以理解代码本身了。话虽如此,如果您运行的是固有的顺序算法(这实际上是 OpenCV 下的所有内容),并行引擎不会做太多事情……我的猜测是,如果您有多个并行运行的 OpenCV 程序,您可能会看到有意义的差异。