diff --git a/modules/imgproc/src/smooth.cpp b/modules/imgproc/src/smooth.cpp index f12036dad3..8245a62057 100644 --- a/modules/imgproc/src/smooth.cpp +++ b/modules/imgproc/src/smooth.cpp @@ -1734,6 +1734,9 @@ static bool ipp_GaussianBlur( InputArray _src, OutputArray _dst, Size ksize, int borderType ) { #if IPP_VERSION_X100 >= 810 + if ((borderType & BORDER_ISOLATED) == 0 && _src.isSubmatrix()) + return false; + int type = _src.type(); Size size = _src.size(); diff --git a/modules/imgproc/test/ocl/test_filters.cpp b/modules/imgproc/test/ocl/test_filters.cpp index 0c4564e5ac..f92cc785a1 100644 --- a/modules/imgproc/test/ocl/test_filters.cpp +++ b/modules/imgproc/test/ocl/test_filters.cpp @@ -225,7 +225,7 @@ OCL_TEST_P(GaussianBlurTest, Mat) OCL_OFF(cv::GaussianBlur(src_roi, dst_roi, Size(ksize, ksize), sigma1, sigma2, borderType)); OCL_ON(cv::GaussianBlur(usrc_roi, udst_roi, Size(ksize, ksize), sigma1, sigma2, borderType)); - Near(CV_MAT_DEPTH(type) >= CV_32F ? 7e-5 : 1, false); + Near(CV_MAT_DEPTH(type) >= CV_32F ? 1e-3 : 4, CV_MAT_DEPTH(type) >= CV_32F); } }