|
|
|
@ -814,6 +814,82 @@ OCL_PERF_TEST_P(NormalizeFixture, Normalize, |
|
|
|
|
SANITY_CHECK(dst, 5e-2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
///////////// ConvertScaleAbs ////////////////////////
|
|
|
|
|
|
|
|
|
|
typedef Size_MatType ConvertScaleAbsFixture; |
|
|
|
|
|
|
|
|
|
OCL_PERF_TEST_P(ConvertScaleAbsFixture, ConvertScaleAbs, |
|
|
|
|
::testing::Combine(OCL_TEST_SIZES, OCL_TEST_TYPES)) |
|
|
|
|
{ |
|
|
|
|
const Size_MatType_t params = GetParam(); |
|
|
|
|
const Size srcSize = get<0>(params); |
|
|
|
|
const int type = get<1>(params), cn = CV_MAT_CN(type); |
|
|
|
|
|
|
|
|
|
checkDeviceMaxMemoryAllocSize(srcSize, type); |
|
|
|
|
|
|
|
|
|
UMat src(srcSize, type), dst(srcSize, CV_8UC(cn)); |
|
|
|
|
declare.in(src, WARMUP_RNG).out(dst); |
|
|
|
|
|
|
|
|
|
OCL_TEST_CYCLE() cv::convertScaleAbs(src, dst, 0.5, 2); |
|
|
|
|
|
|
|
|
|
SANITY_CHECK(dst); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
///////////// PatchNaNs ////////////////////////
|
|
|
|
|
|
|
|
|
|
typedef Size_MatType PatchNaNsFixture; |
|
|
|
|
|
|
|
|
|
OCL_PERF_TEST_P(PatchNaNsFixture, PatchNaNs, |
|
|
|
|
::testing::Combine(OCL_TEST_SIZES, OCL_PERF_ENUM(CV_32FC1, CV_32FC4))) |
|
|
|
|
{ |
|
|
|
|
const Size_MatType_t params = GetParam(); |
|
|
|
|
Size srcSize = get<0>(params); |
|
|
|
|
const int type = get<1>(params), cn = CV_MAT_CN(type); |
|
|
|
|
|
|
|
|
|
checkDeviceMaxMemoryAllocSize(srcSize, type); |
|
|
|
|
|
|
|
|
|
UMat src(srcSize, type); |
|
|
|
|
declare.in(src, WARMUP_RNG).out(src); |
|
|
|
|
|
|
|
|
|
// generating NaNs
|
|
|
|
|
{ |
|
|
|
|
Mat src_ = src.getMat(ACCESS_RW); |
|
|
|
|
srcSize.width *= cn; |
|
|
|
|
for (int y = 0; y < srcSize.height; ++y) |
|
|
|
|
{ |
|
|
|
|
float * const ptr = src_.ptr<float>(y); |
|
|
|
|
for (int x = 0; x < srcSize.width; ++x) |
|
|
|
|
ptr[x] = (x + y) % 2 == 0 ? std::numeric_limits<float>::quiet_NaN() : ptr[x]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
OCL_TEST_CYCLE() cv::patchNaNs(src, 17.7); |
|
|
|
|
|
|
|
|
|
SANITY_CHECK(src); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////// ScaleAdd ////////////////////////
|
|
|
|
|
|
|
|
|
|
typedef Size_MatType ScaleAddFixture; |
|
|
|
|
|
|
|
|
|
OCL_PERF_TEST_P(ScaleAddFixture, ScaleAdd, |
|
|
|
|
::testing::Combine(OCL_TEST_SIZES, OCL_TEST_TYPES)) |
|
|
|
|
{ |
|
|
|
|
const Size_MatType_t params = GetParam(); |
|
|
|
|
const Size srcSize = get<0>(params); |
|
|
|
|
const int type = get<1>(params); |
|
|
|
|
|
|
|
|
|
checkDeviceMaxMemoryAllocSize(srcSize, type); |
|
|
|
|
|
|
|
|
|
UMat src1(srcSize, type), src2(srcSize, type), dst(srcSize, type); |
|
|
|
|
declare.in(src1, src2, WARMUP_RNG).out(dst); |
|
|
|
|
|
|
|
|
|
OCL_TEST_CYCLE() cv::scaleAdd(src1, 0.6, src2, dst); |
|
|
|
|
|
|
|
|
|
SANITY_CHECK(dst, 1e-6); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} } // namespace cvtest::ocl
|
|
|
|
|
|
|
|
|
|
#endif // HAVE_OPENCL
|
|
|
|
|