OpenCV中使用的宏CV_OCL_RUN是什么?

时间:2017-02-23 09:01:17

标签: c++ opencv

当我遇到宏hog.cpp并与之混淆时,我正在 OpenCV 中学习CV_OCL_RUN

hog.cpp所在的detectMultiScale()中,您可以找到CV_OCL_RUN以及名为ocl_detectMultiScale()的方法。在detectMultiScale()ocl_detectMultiScale()之间进行比较,不仅是他们的名字,还有他们的工具非常相似。

以下是我的问题:

  1. CV_OCL_RUN用于什么?它是出于测试还是其他目的?
  2. 由于detectMultiScale()ocl_detectMultiScale()在功能上如此相似,为什么后者嵌入前者?他们叫什么方式?
  3. 提前致谢!

1 个答案:

答案 0 :(得分:4)

  1. CV_OCL_RUN适用于OpenCL代码。
  2. 如果您的计算机无法使用OpenCL功能(无GPU或无OpenCL驱动程序),则会运行常规代码(CPU)。您还可以在常规代码之间切换或在代码中使用OpenCL版本。如果setUseOptimized()setUseOpenCL()设置为false,则会使用常规代码。
  3. 您可以在opencl目录中找到将在GPU设备上运行的内核代码。

    PS:OpenCL不仅适用于GPU。