From: Ilya Lavrenov Date: Wed, 19 Mar 2014 15:12:37 +0000 (+0400) Subject: enabled 3-channels support for cv::createSuperResolution_BTVL1 X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~3367^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63d8a61b9b18db161e0ff94fc7bac0166f0b8e3b;p=platform%2Fupstream%2Fopencv.git enabled 3-channels support for cv::createSuperResolution_BTVL1 --- diff --git a/modules/imgproc/src/filter.cpp b/modules/imgproc/src/filter.cpp index c013a9b..2d7c740 100644 --- a/modules/imgproc/src/filter.cpp +++ b/modules/imgproc/src/filter.cpp @@ -3425,8 +3425,6 @@ static bool ocl_sepColFilter2D(const UMat & buf, UMat & dst, const Mat & kernelY return k.run(2, globalsize, localsize, false); } -#if 0 - const int optimizedSepFilterLocalSize = 16; static bool ocl_sepFilter2D_SinglePass(InputArray _src, OutputArray _dst, @@ -3484,13 +3482,11 @@ 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; @@ -3515,10 +3511,11 @@ static bool ocl_sepFilter2D( InputArray _src, OutputArray _dst, int ddepth, 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; diff --git a/modules/imgproc/test/ocl/test_sepfilter2D.cpp b/modules/imgproc/test/ocl/test_sepfilter2D.cpp index 05d46cc..b724641 100644 --- a/modules/imgproc/test/ocl/test_sepfilter2D.cpp +++ b/modules/imgproc/test/ocl/test_sepfilter2D.cpp @@ -85,7 +85,7 @@ PARAM_TEST_CASE(SepFilter2D, MatDepth, Channels, BorderType, bool, bool) 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); @@ -115,7 +115,7 @@ PARAM_TEST_CASE(SepFilter2D, MatDepth, Channels, BorderType, bool, bool) 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(); diff --git a/modules/superres/src/btv_l1.cpp b/modules/superres/src/btv_l1.cpp index 1e4aa48..d54b4b3 100644 --- a/modules/superres/src/btv_l1.cpp +++ b/modules/superres/src/btv_l1.cpp @@ -1014,10 +1014,8 @@ namespace return; #ifdef HAVE_OPENCL - if (isUmat_ && curFrame_.channels() == 1) + if (isUmat_) curFrame_.copyTo(ucurFrame_); - else - isUmat_ = false; #endif ++storePos_;