OpenCV中使用的宏CV_OCL_RUN是什么?

foo*_*foo 6 c++ opencv

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

在找到的hog.cppdetectMultiScale(),您可以找到CV_OCL_RUN并在其中调用的方法ocl_detectMultiScale().比较detectMultiScale()ocl_detectMultiScale(),不仅他们的名字,但他们的工具非常相似.

这是我的问题:

  1. CV_OCL_RUN用于什么宏?它是出于测试还是其他目的?
  2. 既然detectMultiScale()并且ocl_detectMultiScale()在功能上如此相似,为什么后者嵌入前者?他们叫什么方式?

提前致谢!

Cat*_*ree 5

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

您可以在opencl目录中找到将在 GPU 设备上运行的内核代码。

PS:OpenCL不仅仅适用于GPU。