Fix for #5590. OpenCL BilateralFilter implementation failes to
authorAriel Bernal <ariel.j.bernal@intel.com>
Fri, 30 Oct 2015 16:39:11 +0000 (09:39 -0700)
committerAriel Bernal <ariel.j.bernal@intel.com>
Fri, 30 Oct 2015 16:39:11 +0000 (09:39 -0700)
build for some OCL drivers.
Some OCL vendors treat implicit scalar-vector conversions for
operators as errors when type conversion is required.

modules/imgproc/src/smooth.cpp

index 9fa9203..cc5a7ab 100644 (file)
@@ -3108,7 +3108,7 @@ static bool ocl_bilateralFilter_8u(InputArray _src, OutputArray _dst, int d,
      }
      ocl::Kernel k(kernelName.c_str(), ocl::imgproc::bilateral_oclsrc,
             format("-D radius=%d -D maxk=%d -D cn=%d -D int_t=%s -D uint_t=uint%s -D convert_int_t=%s"
-            " -D uchar_t=%s -D float_t=%s -D convert_float_t=%s -D convert_uchar_t=%s -D gauss_color_coeff=%f",
+            " -D uchar_t=%s -D float_t=%s -D convert_float_t=%s -D convert_uchar_t=%s -D gauss_color_coeff=(float)%f",
             radius, maxk, cn, ocl::typeToStr(CV_32SC(cn)), cnstr.c_str(),
             ocl::convertTypeStr(CV_8U, CV_32S, cn, cvt[0]),
             ocl::typeToStr(type), ocl::typeToStr(CV_32FC(cn)),