return k.run(2, globalsize, localsize, false);
}
-#if 0
-
const int optimizedSepFilterLocalSize = 16;
static bool ocl_sepFilter2D_SinglePass(InputArray _src, OutputArray _dst,
return k.run(2, gt2, lt2, false);
}
-#endif
-
static bool ocl_sepFilter2D( InputArray _src, OutputArray _dst, int ddepth,
InputArray _kernelX, InputArray _kernelY, Point anchor,
double delta, int borderType )
{
-// Size imgSize = _src.size();
+ Size imgSize = _src.size();
if (abs(delta)> FLT_MIN)
return false;
if (ddepth < 0)
ddepth = sdepth;
-// CV_OCL_RUN_(kernelY.rows <= 21 && kernelX.rows <= 21 &&
-// imgSize.width > optimizedSepFilterLocalSize + (kernelX.rows >> 1) &&
-// imgSize.height > optimizedSepFilterLocalSize + (kernelY.rows >> 1),
-// ocl_sepFilter2D_SinglePass(_src, _dst, _kernelX, _kernelY, borderType, ddepth), true)
+ CV_OCL_RUN_(kernelY.rows <= 21 && kernelX.rows <= 21 &&
+ imgSize.width > optimizedSepFilterLocalSize + (kernelX.rows >> 1) &&
+ imgSize.height > optimizedSepFilterLocalSize + (kernelY.rows >> 1) &&
+ (borderType & BORDER_ISOLATED) != 0,
+ ocl_sepFilter2D_SinglePass(_src, _dst, _kernelX, _kernelY, borderType, ddepth), true)
UMat src = _src.getUMat();
Size srcWholeSize; Point srcOffset;
temp = randomMat(Size(1, ksize.height), CV_MAKE_TYPE(CV_32F, 1), -MAX_VALUE, MAX_VALUE);
cv::normalize(temp, kernelY, 1.0, 0.0, NORM_L1);
- Size roiSize = randomSize(ksize.width + 16, MAX_VALUE, ksize.height + 20, MAX_VALUE);
+ Size roiSize = randomSize(ksize.width, MAX_VALUE, ksize.height, MAX_VALUE);
int rest = roiSize.width % 4;
if (rest != 0)
roiSize.width += (4 - rest);
OCL_TEST_P(SepFilter2D, Mat)
{
- for (int j = 0; j < test_loop_times; j++)
+ for (int j = 0; j < test_loop_times + 1; j++)
{
random_roi();