using namespace std;
-PARAM_TEST_CASE(FilterTestBase,
- MatType,
+PARAM_TEST_CASE(FilterTestBase,
+ MatType,
cv::Size, // kernel size
cv::Size, // dx,dy
int // border type, or iteration
{
#ifdef RANDOMROI
//randomize ROI
- cv::RNG &rng = TS::ptr()->get_rng();
roicols = rng.uniform(2, mat1.cols);
roirows = rng.uniform(2, mat1.rows);
src1x = rng.uniform(0, mat1.cols - roicols);
}
};
-TEST_P(Blur, Mat)
+OCL_TEST_P(Blur, Mat)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
}
};
-TEST_P(Laplacian, Accuracy)
+OCL_TEST_P(Laplacian, Accuracy)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
type = GET_PARAM(0);
iterations = GET_PARAM(3);
Init(type);
- // rng.fill(kernel, cv::RNG::UNIFORM, cv::Scalar::all(0), cv::Scalar::all(3));
kernel = randomMat(Size(3, 3), CV_8UC1, 0, 3);
}
};
-TEST_P(ErodeDilate, Mat)
+OCL_TEST_P(ErodeDilate, Mat)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
}
};
-TEST_P(Sobel, Mat)
+OCL_TEST_P(Sobel, Mat)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
}
};
-TEST_P(Scharr, Mat)
+OCL_TEST_P(Scharr, Mat)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
ksize = GET_PARAM(1);
bordertype = GET_PARAM(3);
Init(type);
- cv::RNG &rng = TS::ptr()->get_rng();
sigma1 = rng.uniform(0.1, 1.0);
sigma2 = rng.uniform(0.1, 1.0);
}
};
-TEST_P(GaussianBlur, Mat)
+OCL_TEST_P(GaussianBlur, Mat)
{
for(int j = 0; j < LOOP_TIMES; j++)
{
}
};
-TEST_P(Filter2D, Mat)
+OCL_TEST_P(Filter2D, Mat)
{
cv::Mat kernel = randomMat(cv::Size(ksize.width, ksize.height), CV_32FC1, 0.0, 1.0);
for(int j = 0; j < LOOP_TIMES; j++)
Near(1);
}
}
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Bilateral
+struct Bilateral : FilterTestBase
+{
+ int type;
+ cv::Size ksize;
+ int bordertype;
+ double sigmacolor, sigmaspace;
+
+ virtual void SetUp()
+ {
+ type = GET_PARAM(0);
+ ksize = GET_PARAM(1);
+ bordertype = GET_PARAM(3);
+ Init(type);
+ sigmacolor = rng.uniform(20, 100);
+ sigmaspace = rng.uniform(10, 40);
+ }
+};
+
+OCL_TEST_P(Bilateral, Mat)
+{
+ for(int j = 0; j < LOOP_TIMES; j++)
+ {
+ random_roi();
+ cv::bilateralFilter(mat1_roi, dst_roi, ksize.width, sigmacolor, sigmaspace, bordertype);
+ cv::ocl::bilateralFilter(gmat1, gdst, ksize.width, sigmacolor, sigmaspace, bordertype);
+ Near(1);
+ }
+
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// AdaptiveBilateral
+struct AdaptiveBilateral : FilterTestBase
+{
+ int type;
+ cv::Size ksize;
+ int bordertype;
+ Point anchor;
+ virtual void SetUp()
+ {
+ type = GET_PARAM(0);
+ ksize = GET_PARAM(1);
+ bordertype = GET_PARAM(3);
+ Init(type);
+ anchor = Point(-1,-1);
+ }
+};
+
+OCL_TEST_P(AdaptiveBilateral, Mat)
+{
+ for(int j = 0; j < LOOP_TIMES; j++)
+ {
+ random_roi();
+ cv::adaptiveBilateralFilter(mat1_roi, dst_roi, ksize, 5, anchor, bordertype);
+ cv::ocl::adaptiveBilateralFilter(gmat1, gdst, ksize, 5, anchor, bordertype);
+ Near(1);
+ }
+
+}
+
INSTANTIATE_TEST_CASE_P(Filter, Blur, Combine(
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
Values(cv::Size(3, 3), cv::Size(5, 5), cv::Size(7, 7)),
Values(0))); //not use
INSTANTIATE_TEST_CASE_P(Filter, ErodeDilate, Combine(
- Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4),
+ Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4),
Values(Size(0, 0)), //not use
Values(Size(0, 0)), //not use
Values(1)));
INSTANTIATE_TEST_CASE_P(Filter, Scharr, Combine(
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
Values(Size(0, 0)), //not use
- Values(Size(0, 1), Size(1, 0)),
+ Values(Size(0, 1), Size(1, 0)),
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
INSTANTIATE_TEST_CASE_P(Filter, GaussianBlur, Combine(
INSTANTIATE_TEST_CASE_P(Filter, Filter2D, testing::Combine(
- Values(CV_8UC1, CV_32FC1, CV_32FC4),
+ Values(CV_8UC1, CV_32FC1, CV_32FC4),
Values(Size(3, 3), Size(15, 15), Size(25, 25)),
Values(Size(0, 0)), //not use
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REFLECT101, (MatType)cv::BORDER_REPLICATE, (MatType)cv::BORDER_REFLECT)));
+INSTANTIATE_TEST_CASE_P(Filter, Bilateral, Combine(
+ Values(CV_8UC1, CV_8UC3),
+ Values(Size(5, 5), Size(9, 9)),
+ Values(Size(0, 0)), //not use
+ Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE,
+ (MatType)cv::BORDER_REFLECT, (MatType)cv::BORDER_WRAP, (MatType)cv::BORDER_REFLECT_101)));
+
+INSTANTIATE_TEST_CASE_P(Filter, AdaptiveBilateral, Combine(
+ Values(CV_8UC1, CV_8UC3),
+ Values(Size(5, 5), Size(9, 9)),
+ Values(Size(0, 0)), //not use
+ Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE,
+ (MatType)cv::BORDER_REFLECT, (MatType)cv::BORDER_REFLECT_101)));
#endif // HAVE_OPENCL