diff --git a/modules/core/perf/opencl/perf_arithm.cpp b/modules/core/perf/opencl/perf_arithm.cpp index 1fb9265488..f6ad607b5e 100644 --- a/modules/core/perf/opencl/perf_arithm.cpp +++ b/modules/core/perf/opencl/perf_arithm.cpp @@ -738,6 +738,26 @@ CV_ENUM(NormType, NORM_INF, NORM_L1, NORM_L2) typedef std::tr1::tuple NormParams; typedef TestBaseWithParam NormFixture; +OCL_PERF_TEST_P(NormFixture, Norm1Arg, + ::testing::Combine(OCL_PERF_ENUM(OCL_SIZE_1, OCL_SIZE_2, OCL_SIZE_3), + OCL_TEST_TYPES_134, NormType::all())) +{ + const NormParams params = GetParam(); + const Size srcSize = get<0>(params); + const int type = get<1>(params); + const int normType = get<2>(params); + + checkDeviceMaxMemoryAllocSize(srcSize, type); + + UMat src1(srcSize, type); + double res; + declare.in(src1, WARMUP_RNG); + + OCL_TEST_CYCLE() res = cv::norm(src1, normType); + + SANITY_CHECK(res, 1e-5, ERROR_RELATIVE); +} + OCL_PERF_TEST_P(NormFixture, Norm, ::testing::Combine(OCL_PERF_ENUM(OCL_SIZE_1, OCL_SIZE_2, OCL_SIZE_3), OCL_TEST_TYPES_134, NormType::all())) @@ -910,6 +930,24 @@ OCL_PERF_TEST_P(NormalizeFixture, Normalize, SANITY_CHECK(dst, 5e-2); } +OCL_PERF_TEST_P(NormalizeFixture, NormalizeWithMask, + ::testing::Combine(OCL_TEST_SIZES, OCL_PERF_ENUM(CV_8UC1, CV_32FC1), + NormalizeModes::all())) +{ + const NormalizeParams params = GetParam(); + const Size srcSize = get<0>(params); + const int type = get<1>(params), mode = get<2>(params); + + checkDeviceMaxMemoryAllocSize(srcSize, type); + + UMat src(srcSize, type), mask(srcSize, CV_8UC1), dst(srcSize, type); + declare.in(src, mask, WARMUP_RNG).out(dst); + + OCL_TEST_CYCLE() cv::normalize(src, dst, 10, 110, mode, -1, mask); + + SANITY_CHECK(dst, 5e-2); +} + ///////////// ConvertScaleAbs //////////////////////// typedef Size_MatType ConvertScaleAbsFixture;