added mask support to cv::norm, cv::meanStdDev
This commit is contained in:
@@ -924,6 +924,25 @@ OCL_TEST_P(MeanStdDev, Mat)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(MeanStdDev, Mat_Mask)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
Scalar cpu_mean, cpu_stddev;
|
||||
Scalar gpu_mean, gpu_stddev;
|
||||
|
||||
OCL_OFF(cv::meanStdDev(src1_roi, cpu_mean, cpu_stddev, mask_roi));
|
||||
OCL_ON(cv::meanStdDev(usrc1_roi, gpu_mean, gpu_stddev, umask_roi));
|
||||
|
||||
for (int i = 0; i < cn; ++i)
|
||||
{
|
||||
EXPECT_NEAR(cpu_mean[i], gpu_mean[i], 0.1);
|
||||
EXPECT_NEAR(cpu_stddev[i], gpu_stddev[i], 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////// Log /////////////////////////////////////////
|
||||
|
||||
@@ -1124,6 +1143,19 @@ OCL_TEST_P(Norm, NORM_INF_1arg)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_INF_1arg_mask)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, NORM_INF, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, NORM_INF, umask_roi));
|
||||
|
||||
EXPECT_NEAR(cpuRes, gpuRes, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L1_1arg)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
@@ -1137,6 +1169,19 @@ OCL_TEST_P(Norm, NORM_L1_1arg)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L1_1arg_mask)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, NORM_L1, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, NORM_L1, umask_roi));
|
||||
|
||||
EXPECT_PRED3(relativeError, cpuRes, gpuRes, 1e-6);
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L2_1arg)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
@@ -1150,6 +1195,19 @@ OCL_TEST_P(Norm, NORM_L2_1arg)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L2_1arg_mask)
|
||||
{
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, NORM_L2, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, NORM_L2, umask_roi));
|
||||
|
||||
EXPECT_PRED3(relativeError, cpuRes, gpuRes, 1e-6);
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_INF_2args)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
@@ -1168,6 +1226,24 @@ OCL_TEST_P(Norm, NORM_INF_2args)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_INF_2args_mask)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
int type = NORM_INF;
|
||||
if (relative == 1)
|
||||
type |= NORM_RELATIVE;
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, src2_roi, type, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, usrc2_roi, type, umask_roi));
|
||||
|
||||
EXPECT_NEAR(cpuRes, gpuRes, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L1_2args)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
@@ -1186,6 +1262,24 @@ OCL_TEST_P(Norm, NORM_L1_2args)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L1_2args_mask)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
int type = NORM_L1;
|
||||
if (relative == 1)
|
||||
type |= NORM_RELATIVE;
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, src2_roi, type, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, usrc2_roi, type, umask_roi));
|
||||
|
||||
EXPECT_PRED3(relativeError, cpuRes, gpuRes, 1e-6);
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L2_2args)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
@@ -1204,6 +1298,24 @@ OCL_TEST_P(Norm, NORM_L2_2args)
|
||||
}
|
||||
}
|
||||
|
||||
OCL_TEST_P(Norm, NORM_L2_2args_mask)
|
||||
{
|
||||
for (int relative = 0; relative < 2; ++relative)
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
int type = NORM_L2;
|
||||
if (relative == 1)
|
||||
type |= NORM_RELATIVE;
|
||||
|
||||
OCL_OFF(const double cpuRes = cv::norm(src1_roi, src2_roi, type, mask_roi));
|
||||
OCL_ON(const double gpuRes = cv::norm(usrc1_roi, usrc2_roi, type, umask_roi));
|
||||
|
||||
EXPECT_PRED3(relativeError, cpuRes, gpuRes, 1e-6);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////// Sqrt ////////////////////////////////////////////////
|
||||
|
||||
typedef ArithmTestBase Sqrt;
|
||||
|
Reference in New Issue
Block a user