openCV 3.0,openCL和meanShiftFiltering

时间:2015-12-10 13:51:54

标签: opencv opencl

根据openCV 3.0和openCL的变化,我似乎无法使用openCL来使用pyrMeanShiftFiltering。我知道openCV 2.4.10支持ocl :: meanShiftFiltering。下面的两个函数执行时间相同。

我怎样才能检查openCL下支持openCV 3.0中的哪些功能?有什么建议?

 #include <opencv2/core/ocl.hpp>   //attempting to use openCL
 using namespace cv;
 using namespace ocl;
    void meanShiftOCL()
    {
      setUseOpenCL(true)
      UMat in, out;
      imread("./images/img.png").copyTo(in);
      pyrMeanShiftFiltering(in, out, 40, 20, 3);    
    }


   //not using openCL
   void meanShift()
   {
     Mat in, out;
     imread("./images/img.png").copyTo(in);
     pyrMeanShiftFiltering(in, out, 40, 20, 3);        
   }

1 个答案:

答案 0 :(得分:1)

我不确定是否有简单的方法可以使用给定的 OpenCV 二进制文件来确定它,但您可以使用其他定义自行重新编译 OpenCV (可以指定在cmake):

CV_OPENCL_RUN_VERBOSE

使用此定义 OpenCL 实现可用的每个函数将打印到控制台(stdout)以下消息:

<function name>: OpenCL implementation is running

关注您的问题 - 据我所知,目前pyrMeanShiftFiltering没有 OpenCL 实施。