moved kernelToStr to ocl.hpp
authorIlya Lavrenov <ilya.lavrenov@itseez.com>
Thu, 30 Jan 2014 11:23:11 +0000 (15:23 +0400)
committerIlya Lavrenov <ilya.lavrenov@itseez.com>
Thu, 30 Jan 2014 11:23:11 +0000 (15:23 +0400)
modules/core/include/opencv2/core/ocl.hpp
modules/core/src/ocl.cpp
modules/imgproc/src/filter.cpp

index 850a2e6..4d63e3f 100644 (file)
@@ -575,6 +575,7 @@ protected:
 CV_EXPORTS const char* convertTypeStr(int sdepth, int ddepth, int cn, char* buf);
 CV_EXPORTS const char* typeToStr(int t);
 CV_EXPORTS const char* memopTypeToStr(int t);
+CV_EXPORTS String kernelToStr(InputArray _kernel, int ddepth = -1);
 CV_EXPORTS void getPlatfomsInfo(std::vector<PlatformInfo2>& platform_info);
 
 class CV_EXPORTS Image2D
index 66dbcbb..03abc06 100644 (file)
@@ -3814,6 +3814,57 @@ const char* convertTypeStr(int sdepth, int ddepth, int cn, char* buf)
     return buf;
 }
 
+template <typename T>
+static std::string kerToStr(const Mat & k)
+{
+    int width = k.cols - 1, depth = k.depth();
+    const T * const data = reinterpret_cast<const T *>(k.data);
+
+    std::ostringstream stream;
+    stream.precision(10);
+
+    if (depth <= CV_8S)
+    {
+        for (int i = 0; i < width; ++i)
+            stream << (int)data[i] << ", ";
+        stream << (int)data[width];
+    }
+    else if (depth == CV_32F)
+    {
+        stream.setf(std::ios_base::showpoint);
+        for (int i = 0; i < width; ++i)
+            stream << data[i] << "f, ";
+        stream << data[width] << "f";
+    }
+    else
+    {
+        for (int i = 0; i < width; ++i)
+            stream << data[i] << ", ";
+    }
+
+    return stream.str();
+}
+
+String kernelToStr(InputArray _kernel, int ddepth)
+{
+    Mat kernel = _kernel.getMat().reshape(1, 1);
+
+    int depth = kernel.depth();
+    if (ddepth < 0)
+        ddepth = depth;
+
+    if (ddepth != depth)
+        kernel.convertTo(kernel, ddepth);
+
+    typedef std::string (*func_t)(const Mat &);
+    static const func_t funcs[] = { kerToStr<uchar>, kerToStr<char>, kerToStr<ushort>,kerToStr<short>,
+                                    kerToStr<int>, kerToStr<float>, kerToStr<double>, 0 };
+    const func_t func = funcs[depth];
+    CV_Assert(func != 0);
+
+    return cv::format(" -D COEFF=%s", func(kernel).c_str());
+}
+
 ///////////////////////////////////////////////////////////////////////////////////////////////
 // deviceVersion has format
 //   OpenCL<space><major_version.minor_version><space><vendor-specific information>
index c3a0966..09519e7 100644 (file)
@@ -3313,57 +3313,6 @@ static bool ocl_filter2D( InputArray _src, OutputArray _dst, int ddepth,
     return kernel.run(2, globalsize, localsize, true);
 }
 
-template <typename T>
-static std::string kerToStr(const Mat & k)
-{
-    int width = k.cols - 1, depth = k.depth();
-    const T * const data = reinterpret_cast<const T *>(k.data);
-
-    std::ostringstream stream;
-    stream.precision(10);
-
-    if (depth <= CV_8S)
-    {
-        for (int i = 0; i < width; ++i)
-            stream << (int)data[i] << ",";
-        stream << (int)data[width];
-    }
-    else if (depth == CV_32F)
-    {
-        stream.setf(std::ios_base::showpoint);
-        for (int i = 0; i < width; ++i)
-            stream << data[i] << "f,";
-        stream << data[width] << "f";
-    }
-    else
-    {
-        for (int i = 0; i < width; ++i)
-            stream << data[i] << ",";
-    }
-
-    return stream.str();
-}
-
-static String kernelToStr(InputArray _kernel, int ddepth = -1)
-{
-    Mat kernel = _kernel.getMat().reshape(1, 1);
-
-    int depth = kernel.depth();
-    if (ddepth < 0)
-        ddepth = depth;
-
-    if (ddepth != depth)
-        kernel.convertTo(kernel, ddepth);
-
-    typedef std::string (*func_t)(const Mat &);
-    static const func_t funcs[] = { kerToStr<uchar>, kerToStr<char>, kerToStr<ushort>,kerToStr<short>,
-                                    kerToStr<int>, kerToStr<float>, kerToStr<double>, 0 };
-    const func_t func = funcs[depth];
-    CV_Assert(func != 0);
-
-    return cv::format(" -D COEFF=%s", func(kernel).c_str());
-}
-
 static bool ocl_sepRowFilter2D( UMat &src, UMat &buf, Mat &kernelX, int anchor, int borderType, bool sync)
 {
     int type = src.type();
@@ -3429,7 +3378,7 @@ static bool ocl_sepRowFilter2D( UMat &src, UMat &buf, Mat &kernelX, int anchor,
         btype,
         extra_extrapolation ? "EXTRA_EXTRAPOLATION" : "NO_EXTRA_EXTRAPOLATION",
         isIsolatedBorder ? "BORDER_ISOLATED" : "NO_BORDER_ISOLATED");
-    build_options += kernelToStr(kernelX, CV_32F);
+    build_options += ocl::kernelToStr(kernelX, CV_32F);
 
     Size srcWholeSize; Point srcOffset;
     src.locateROI(srcWholeSize, srcOffset);
@@ -3462,7 +3411,6 @@ static bool ocl_sepRowFilter2D( UMat &src, UMat &buf, Mat &kernelX, int anchor,
     idxArg = kernelRow.set(idxArg, buf.cols);
     idxArg = kernelRow.set(idxArg, buf.rows);
     idxArg = kernelRow.set(idxArg, radiusY);
-//    idxArg = kernelRow.set(idxArg, ocl::KernelArg::PtrReadOnly(kernelX.getUMat(ACCESS_READ)));
 
     return kernelRow.run(2, globalsize, localsize, sync);
 }
@@ -3532,7 +3480,7 @@ static bool ocl_sepColFilter2D(UMat &buf, UMat &dst, Mat &kernelY, int anchor, b
         }
     }
 
-    build_options += kernelToStr(kernelY, CV_32F);
+    build_options += ocl::kernelToStr(kernelY, CV_32F);
 
     ocl::Kernel kernelCol;
     if (!kernelCol.create("col_filter", cv::ocl::imgproc::filterSepCol_oclsrc, build_options))
@@ -3549,7 +3497,6 @@ static bool ocl_sepColFilter2D(UMat &buf, UMat &dst, Mat &kernelY, int anchor, b
     idxArg = kernelCol.set(idxArg, (int)(dst.step / dst.elemSize()));
     idxArg = kernelCol.set(idxArg, dst.cols);
     idxArg = kernelCol.set(idxArg, dst.rows);
-//    idxArg = kernelCol.set(idxArg, ocl::KernelArg::PtrReadOnly(kernelY.getUMat(ACCESS_READ)));
 
     return kernelCol.run(2, globalsize, localsize, sync);
 }