simplify logics in filter tests, remove redundant code in arithm tests
This commit is contained in:
parent
52dbbae82c
commit
e4d3378230
@ -12,6 +12,7 @@
|
||||
//
|
||||
// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
|
||||
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
|
||||
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
//
|
||||
// @Authors
|
||||
@ -21,6 +22,7 @@
|
||||
// Jiang Liyuan,jlyuan001.good@163.com
|
||||
// Rock Li, Rock.Li@amd.com
|
||||
// Zailong Wu, bullet@yeah.net
|
||||
// Yao Wang, bitwangyaoyao@gmail.com
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
@ -87,14 +89,13 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool)
|
||||
int maskx;
|
||||
int masky;
|
||||
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat mat2_roi;
|
||||
cv::Mat mask_roi;
|
||||
cv::Mat dst_roi;
|
||||
cv::Mat dst1_roi; //bak
|
||||
//std::vector<cv::ocl::Info> oclinfo;
|
||||
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
cv::ocl::oclMat gdst1_whole; //bak
|
||||
@ -202,17 +203,12 @@ TEST_P(Lut, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download (cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////exp/////////////////////////////////////////////////
|
||||
|
||||
struct Exp : ArithmTestBase {};
|
||||
|
||||
TEST_P(Exp, Mat)
|
||||
@ -227,16 +223,13 @@ TEST_P(Exp, Mat)
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 2, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 2, "");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////log/////////////////////////////////////////////////
|
||||
|
||||
struct Log : ArithmTestBase {};
|
||||
|
||||
TEST_P(Log, Mat)
|
||||
@ -245,24 +238,17 @@ TEST_P(Log, Mat)
|
||||
{
|
||||
random_roi();
|
||||
|
||||
|
||||
cv::log(mat1_roi, dst_roi);
|
||||
cv::ocl::log(gmat1, gdst);
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, s);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////add/////////////////////////////////////////////////
|
||||
|
||||
struct Add : ArithmTestBase {};
|
||||
|
||||
TEST_P(Add, Mat)
|
||||
@ -276,9 +262,7 @@ TEST_P(Add, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,9 +277,7 @@ TEST_P(Add, Mat_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
TEST_P(Add, Scalar)
|
||||
@ -309,9 +291,7 @@ TEST_P(Add, Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -326,9 +306,7 @@ TEST_P(Add, Scalar_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -348,9 +326,7 @@ TEST_P(Sub, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -365,11 +341,10 @@ TEST_P(Sub, Mat_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(Sub, Scalar)
|
||||
{
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
@ -381,9 +356,7 @@ TEST_P(Sub, Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -398,9 +371,7 @@ TEST_P(Sub, Scalar_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -420,9 +391,7 @@ TEST_P(Mul, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char s[1024];
|
||||
sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -440,9 +409,7 @@ TEST_P(Mul, Mat_Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -461,10 +428,7 @@ TEST_P(Div, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -482,10 +446,7 @@ TEST_P(Div, Mat_Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -503,10 +464,7 @@ TEST_P(Absdiff, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -521,10 +479,7 @@ TEST_P(Absdiff, Mat_Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -546,10 +501,8 @@ TEST_P(CartToPolar, angleInDegree)
|
||||
|
||||
cv::Mat cpu_dst1;
|
||||
gdst1_whole.download(cpu_dst1);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, "");
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -567,16 +520,12 @@ TEST_P(CartToPolar, angleInRadians)
|
||||
|
||||
cv::Mat cpu_dst1;
|
||||
gdst1_whole.download(cpu_dst1);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, "");
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
struct PolarToCart : ArithmTestBase {};
|
||||
|
||||
TEST_P(PolarToCart, angleInDegree)
|
||||
@ -593,11 +542,9 @@ TEST_P(PolarToCart, angleInDegree)
|
||||
|
||||
cv::Mat cpu_dst1;
|
||||
gdst1_whole.download(cpu_dst1);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, "");
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -615,11 +562,9 @@ TEST_P(PolarToCart, angleInRadians)
|
||||
|
||||
cv::Mat cpu_dst1;
|
||||
gdst1_whole.download(cpu_dst1);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, "");
|
||||
EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -639,16 +584,12 @@ TEST_P(Magnitude, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
struct Transpose : ArithmTestBase {};
|
||||
|
||||
TEST_P(Transpose, Mat)
|
||||
@ -662,17 +603,13 @@ TEST_P(Transpose, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
struct Flip : ArithmTestBase {};
|
||||
|
||||
TEST_P(Flip, X)
|
||||
@ -686,10 +623,8 @@ TEST_P(Flip, X)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -704,10 +639,8 @@ TEST_P(Flip, Y)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -722,15 +655,12 @@ TEST_P(Flip, BOTH)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct MinMax : ArithmTestBase {};
|
||||
|
||||
TEST_P(MinMax, MAT)
|
||||
@ -761,12 +691,8 @@ TEST_P(MinMax, MAT)
|
||||
double minVal_, maxVal_;
|
||||
cv::ocl::minMax(gmat1, &minVal_, &maxVal_);
|
||||
|
||||
//check results
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal);
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal);
|
||||
}
|
||||
}
|
||||
|
||||
@ -799,12 +725,8 @@ TEST_P(MinMax, MASK)
|
||||
double minVal_, maxVal_;
|
||||
cv::ocl::minMax(gmat1, &minVal_, &maxVal_, gmask);
|
||||
|
||||
//check results
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal);
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal);
|
||||
}
|
||||
}
|
||||
|
||||
@ -915,17 +837,13 @@ TEST_P(MinMaxLoc, MAT)
|
||||
error1 = ::abs(mat1_roi.at<double>(maxLoc_) - mat1_roi.at<double>(maxLoc));
|
||||
}
|
||||
|
||||
//check results
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal);
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal);
|
||||
EXPECT_DOUBLE_EQ(minlocVal_, minlocVal);
|
||||
EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal);
|
||||
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(minlocVal_, minlocVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal) << sss;
|
||||
|
||||
EXPECT_DOUBLE_EQ(error0, 0.0) << sss;
|
||||
EXPECT_DOUBLE_EQ(error1, 0.0) << sss;
|
||||
EXPECT_DOUBLE_EQ(error0, 0.0);
|
||||
EXPECT_DOUBLE_EQ(error1, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1036,17 +954,13 @@ TEST_P(MinMaxLoc, MASK)
|
||||
error1 = ::abs(mat1_roi.at<double>(maxLoc_) - mat1_roi.at<double>(maxLoc));
|
||||
}
|
||||
|
||||
//check results
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal);
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal);
|
||||
EXPECT_DOUBLE_EQ(minlocVal_, minlocVal);
|
||||
EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal);
|
||||
|
||||
EXPECT_DOUBLE_EQ(minVal_, minVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(minlocVal_, minlocVal) << sss;
|
||||
EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal) << sss;
|
||||
|
||||
EXPECT_DOUBLE_EQ(error0, 0.0) << sss;
|
||||
EXPECT_DOUBLE_EQ(error1, 0.0) << sss;
|
||||
EXPECT_DOUBLE_EQ(error0, 0.0);
|
||||
EXPECT_DOUBLE_EQ(error1, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1060,14 +974,12 @@ TEST_P(Sum, MAT)
|
||||
random_roi();
|
||||
Scalar cpures = cv::sum(mat1_roi);
|
||||
Scalar gpures = cv::ocl::sum(gmat1);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
//check results
|
||||
EXPECT_NEAR(cpures[0], gpures[0], 0.1) << sss;
|
||||
EXPECT_NEAR(cpures[1], gpures[1], 0.1) << sss;
|
||||
EXPECT_NEAR(cpures[2], gpures[2], 0.1) << sss;
|
||||
EXPECT_NEAR(cpures[3], gpures[3], 0.1) << sss;
|
||||
EXPECT_NEAR(cpures[0], gpures[0], 0.1);
|
||||
EXPECT_NEAR(cpures[1], gpures[1], 0.1);
|
||||
EXPECT_NEAR(cpures[2], gpures[2], 0.1);
|
||||
EXPECT_NEAR(cpures[3], gpures[3], 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1082,11 +994,7 @@ TEST_P(CountNonZero, MAT)
|
||||
int cpures = cv::countNonZero(mat1_roi);
|
||||
int gpures = cv::ocl::countNonZero(gmat1);
|
||||
|
||||
//check results
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_DOUBLE_EQ((double)cpures, (double)gpures) << sss;
|
||||
EXPECT_DOUBLE_EQ((double)cpures, (double)gpures);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1112,9 +1020,7 @@ TEST_P(Phase, Mat)
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-2, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-2, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1134,10 +1040,8 @@ TEST_P(Bitwise_and, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1152,10 +1056,8 @@ TEST_P(Bitwise_and, Mat_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
TEST_P(Bitwise_and, Scalar)
|
||||
@ -1169,10 +1071,8 @@ TEST_P(Bitwise_and, Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
|
||||
}
|
||||
}
|
||||
@ -1188,11 +1088,8 @@ TEST_P(Bitwise_and, Scalar_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char *sss = new char[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
delete[] sss;
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1213,10 +1110,8 @@ TEST_P(Bitwise_or, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1231,10 +1126,8 @@ TEST_P(Bitwise_or, Mat_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
TEST_P(Bitwise_or, Scalar)
|
||||
@ -1248,10 +1141,8 @@ TEST_P(Bitwise_or, Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1266,10 +1157,8 @@ TEST_P(Bitwise_or, Scalar_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1290,10 +1179,8 @@ TEST_P(Bitwise_xor, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1308,10 +1195,8 @@ TEST_P(Bitwise_xor, Mat_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
TEST_P(Bitwise_xor, Scalar)
|
||||
@ -1325,10 +1210,8 @@ TEST_P(Bitwise_xor, Scalar)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1343,10 +1226,8 @@ TEST_P(Bitwise_xor, Scalar_Mask)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1366,10 +1247,8 @@ TEST_P(Bitwise_not, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1386,7 +1265,7 @@ TEST_P(Compare, Mat)
|
||||
}
|
||||
|
||||
int cmp_codes[] = {CMP_EQ, CMP_GT, CMP_GE, CMP_LT, CMP_LE, CMP_NE};
|
||||
const char *cmp_str[] = {"CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE"};
|
||||
//const char *cmp_str[] = {"CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE"};
|
||||
int cmp_num = sizeof(cmp_codes) / sizeof(int);
|
||||
|
||||
for (int i = 0; i < cmp_num; ++i)
|
||||
@ -1401,10 +1280,8 @@ TEST_P(Compare, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "cmptype=%s, roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", cmp_str[i], roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1430,10 +1307,7 @@ TEST_P(Pow, Mat)
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1464,16 +1338,13 @@ TEST_P(MagnitudeSqr, Mat)
|
||||
// end = cv::getTickCount();
|
||||
|
||||
|
||||
|
||||
cv::ocl::oclMat clmat1(mat1), clmat2(mat2), cldst;
|
||||
cv::ocl::magnitudeSqr(clmat1, clmat2, cldst);
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
cldst.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1498,10 +1369,7 @@ TEST_P(AddWeighted, Mat)
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
//
|
||||
// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
|
||||
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
|
||||
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
//
|
||||
// @Authors
|
||||
@ -19,6 +20,7 @@
|
||||
// Jia Haipeng, jiahaipeng95@gmail.com
|
||||
// Zero Lin, Zero.Lin@amd.com
|
||||
// Zhang Ying, zhangying913@gmail.com
|
||||
// Yao Wang, bitwangyaoyao@gmail.com
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
@ -55,121 +57,13 @@ using namespace testing;
|
||||
using namespace std;
|
||||
|
||||
|
||||
PARAM_TEST_CASE(FilterTestBase, MatType, bool)
|
||||
PARAM_TEST_CASE(FilterTestBase,
|
||||
MatType,
|
||||
cv::Size, // kernel size
|
||||
cv::Size, // dx,dy
|
||||
int // border type, or iteration
|
||||
)
|
||||
{
|
||||
int type;
|
||||
cv::Scalar val;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat mat2;
|
||||
cv::Mat mask;
|
||||
cv::Mat dst;
|
||||
cv::Mat dst1; //bak, for two outputs
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int src1x;
|
||||
int src1y;
|
||||
int src2x;
|
||||
int src2y;
|
||||
int dstx;
|
||||
int dsty;
|
||||
int maskx;
|
||||
int masky;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat mat2_roi;
|
||||
cv::Mat mask_roi;
|
||||
cv::Mat dst_roi;
|
||||
cv::Mat dst1_roi; //bak
|
||||
//std::vector<cv::ocl::Info> oclinfo;
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
cv::ocl::oclMat gdst1_whole; //bak
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gmat2;
|
||||
cv::ocl::oclMat gdst;
|
||||
cv::ocl::oclMat gdst1; //bak
|
||||
cv::ocl::oclMat gmask;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
|
||||
mat1 = randomMat(rng, size, type, 5, 16, false);
|
||||
mat2 = randomMat(rng, size, type, 5, 16, false);
|
||||
dst = randomMat(rng, size, type, 5, 16, false);
|
||||
dst1 = randomMat(rng, size, type, 5, 16, false);
|
||||
mask = randomMat(rng, size, CV_8UC1, 0, 2, false);
|
||||
|
||||
cv::threshold(mask, mask, 0.5, 255., CV_8UC1);
|
||||
|
||||
val = cv::Scalar(rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0));
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#ifdef RANDOMROI
|
||||
//randomize ROI
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
roicols = rng.uniform(1, mat1.cols);
|
||||
roirows = rng.uniform(1, mat1.rows);
|
||||
src1x = rng.uniform(0, mat1.cols - roicols);
|
||||
src1y = rng.uniform(0, mat1.rows - roirows);
|
||||
src2x = rng.uniform(0, mat2.cols - roicols);
|
||||
src2y = rng.uniform(0, mat2.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
maskx = rng.uniform(0, mask.cols - roicols);
|
||||
masky = rng.uniform(0, mask.rows - roirows);
|
||||
#else
|
||||
roicols = mat1.cols;
|
||||
roirows = mat1.rows;
|
||||
src1x = 0;
|
||||
src1y = 0;
|
||||
src2x = 0;
|
||||
src2y = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
maskx = 0;
|
||||
masky = 0;
|
||||
#endif
|
||||
mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows));
|
||||
mat2_roi = mat2(Rect(src2x, src2y, roicols, roirows));
|
||||
mask_roi = mask(Rect(maskx, masky, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
dst1_roi = dst1(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst1_whole = dst1;
|
||||
gdst1 = gdst1_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
gmat2 = mat2_roi;
|
||||
gmask = mask_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// blur
|
||||
|
||||
PARAM_TEST_CASE(Blur, MatType, cv::Size, int)
|
||||
{
|
||||
int type;
|
||||
cv::Size ksize;
|
||||
int bordertype;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat dst;
|
||||
@ -185,7 +79,7 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int)
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat dst_roi;
|
||||
//std::vector<cv::ocl::Info> oclinfo;
|
||||
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
@ -193,23 +87,6 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int)
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gdst;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
ksize = GET_PARAM(1);
|
||||
bordertype = GET_PARAM(2);
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
|
||||
mat1 = randomMat(rng, size, type, 5, 16, false);
|
||||
dst = randomMat(rng, size, type, 5, 16, false);
|
||||
//int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE);
|
||||
//CV_Assert(devnums > 0);
|
||||
////if you want to use undefault device, set it here
|
||||
////setDevice(oclinfo[0]);
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#ifdef RANDOMROI
|
||||
@ -236,12 +113,33 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int)
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// blur
|
||||
struct Blur : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
cv::Size ksize;
|
||||
int bordertype;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
ksize = GET_PARAM(1);
|
||||
bordertype = GET_PARAM(3);
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
|
||||
mat1 = randomMat(rng, size, type, 5, 16, false);
|
||||
dst = randomMat(rng, size, type, 5, 16, false);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_P(Blur, Mat)
|
||||
{
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
@ -253,9 +151,8 @@ TEST_P(Blur, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, sss);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, "");
|
||||
}
|
||||
|
||||
}
|
||||
@ -264,34 +161,10 @@ TEST_P(Blur, Mat)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//Laplacian
|
||||
|
||||
PARAM_TEST_CASE(LaplacianTestBase, MatType, int)
|
||||
struct Laplacian : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
int ksize;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat;
|
||||
cv::Mat dst;
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int srcx;
|
||||
int srcy;
|
||||
int dstx;
|
||||
int dsty;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat_roi;
|
||||
cv::Mat dst_roi;
|
||||
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat;
|
||||
cv::ocl::oclMat gdst;
|
||||
cv::Size ksize;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@ -301,58 +174,26 @@ PARAM_TEST_CASE(LaplacianTestBase, MatType, int)
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
|
||||
mat = randomMat(rng, size, type, 5, 16, false);
|
||||
mat1 = randomMat(rng, size, type, 5, 16, false);
|
||||
dst = randomMat(rng, size, type, 5, 16, false);
|
||||
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#ifdef RANDOMROI
|
||||
//randomize ROI
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
roicols = rng.uniform(2, mat.cols);
|
||||
roirows = rng.uniform(2, mat.rows);
|
||||
srcx = rng.uniform(0, mat.cols - roicols);
|
||||
srcy = rng.uniform(0, mat.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
#else
|
||||
roicols = mat.cols;
|
||||
roirows = mat.rows;
|
||||
srcx = 0;
|
||||
srcy = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
#endif
|
||||
|
||||
mat_roi = mat(Rect(srcx, srcy, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gmat = mat_roi;
|
||||
}
|
||||
};
|
||||
|
||||
struct Laplacian : LaplacianTestBase {};
|
||||
|
||||
TEST_P(Laplacian, Accuracy)
|
||||
{
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
{
|
||||
random_roi();
|
||||
|
||||
cv::Laplacian(mat_roi, dst_roi, -1, ksize, 1);
|
||||
cv::ocl::Laplacian(gmat, gdst, -1, ksize, 1);
|
||||
cv::Laplacian(mat1_roi, dst_roi, -1, ksize.width, 1);
|
||||
cv::ocl::Laplacian(gmat1, gdst, -1, ksize.width, 1);
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, srcx, srcy, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -360,8 +201,7 @@ TEST_P(Laplacian, Accuracy)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// erode & dilate
|
||||
|
||||
PARAM_TEST_CASE(ErodeDilateBase, MatType, int)
|
||||
struct ErodeDilate : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
int iterations;
|
||||
@ -369,33 +209,10 @@ PARAM_TEST_CASE(ErodeDilateBase, MatType, int)
|
||||
//erode or dilate kernel
|
||||
cv::Mat kernel;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat dst;
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int src1x;
|
||||
int src1y;
|
||||
int dstx;
|
||||
int dsty;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat dst_roi;
|
||||
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gdst;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
iterations = GET_PARAM(1);
|
||||
iterations = GET_PARAM(3);
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
@ -407,43 +224,11 @@ PARAM_TEST_CASE(ErodeDilateBase, MatType, int)
|
||||
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#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);
|
||||
src1y = rng.uniform(0, mat1.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
#else
|
||||
roicols = mat1.cols;
|
||||
roirows = mat1.rows;
|
||||
src1x = 0;
|
||||
src1y = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
#endif
|
||||
|
||||
mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// erode
|
||||
|
||||
struct Erode : ErodeDilateBase {};
|
||||
|
||||
TEST_P(Erode, Mat)
|
||||
TEST_P(ErodeDilate, Mat)
|
||||
{
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
{
|
||||
@ -454,81 +239,39 @@ TEST_P(Erode, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// dilate
|
||||
|
||||
struct Dilate : ErodeDilateBase {};
|
||||
|
||||
TEST_P(Dilate, Mat)
|
||||
{
|
||||
for(int j = 0; j < LOOP_TIMES; j++)
|
||||
{
|
||||
random_roi();
|
||||
cv::erode(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations);
|
||||
cv::ocl::erode(gmat1, gdst, kernel, Point(-1, -1), iterations);
|
||||
cv::dilate(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations);
|
||||
cv::ocl::dilate(gmat1, gdst, kernel, Point(-1, -1), iterations);
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Sobel
|
||||
|
||||
PARAM_TEST_CASE(Sobel, MatType, int, int, int, int)
|
||||
struct Sobel : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
int dx, dy, ksize, bordertype;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat dst;
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int src1x;
|
||||
int src1y;
|
||||
int dstx;
|
||||
int dsty;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat dst_roi;
|
||||
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gdst;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
dx = GET_PARAM(1);
|
||||
dy = GET_PARAM(2);
|
||||
ksize = GET_PARAM(3);
|
||||
bordertype = GET_PARAM(4);
|
||||
Size s = GET_PARAM(1);
|
||||
ksize = s.width;
|
||||
s = GET_PARAM(2);
|
||||
dx = s.width;
|
||||
dy = s.height;
|
||||
bordertype = GET_PARAM(3);
|
||||
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
@ -538,36 +281,6 @@ PARAM_TEST_CASE(Sobel, MatType, int, int, int, int)
|
||||
dst = randomMat(rng, size, type, 5, 16, false);
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#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);
|
||||
src1y = rng.uniform(0, mat1.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
#else
|
||||
roicols = mat1.cols;
|
||||
roirows = mat1.rows;
|
||||
src1x = 0;
|
||||
src1y = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
#endif
|
||||
|
||||
mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
TEST_P(Sobel, Mat)
|
||||
@ -581,10 +294,8 @@ TEST_P(Sobel, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
|
||||
}
|
||||
@ -592,39 +303,17 @@ TEST_P(Sobel, Mat)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Scharr
|
||||
|
||||
PARAM_TEST_CASE(Scharr, MatType, int, int, int)
|
||||
struct Scharr : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
int dx, dy, bordertype;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat dst;
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int src1x;
|
||||
int src1y;
|
||||
int dstx;
|
||||
int dsty;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat dst_roi;
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gdst;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
dx = GET_PARAM(1);
|
||||
dy = GET_PARAM(2);
|
||||
Size s = GET_PARAM(2);
|
||||
dx = s.width;
|
||||
dy = s.height;
|
||||
bordertype = GET_PARAM(3);
|
||||
dx = 1;
|
||||
dy = 0;
|
||||
@ -637,36 +326,6 @@ PARAM_TEST_CASE(Scharr, MatType, int, int, int)
|
||||
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#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);
|
||||
src1y = rng.uniform(0, mat1.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
#else
|
||||
roicols = mat1.cols;
|
||||
roirows = mat1.rows;
|
||||
src1x = 0;
|
||||
src1y = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
#endif
|
||||
|
||||
mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
TEST_P(Scharr, Mat)
|
||||
@ -680,10 +339,8 @@ TEST_P(Scharr, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1, "");
|
||||
}
|
||||
|
||||
}
|
||||
@ -691,42 +348,18 @@ TEST_P(Scharr, Mat)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// GaussianBlur
|
||||
|
||||
PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int)
|
||||
struct GaussianBlur : FilterTestBase
|
||||
{
|
||||
int type;
|
||||
cv::Size ksize;
|
||||
int bordertype;
|
||||
|
||||
double sigma1, sigma2;
|
||||
|
||||
//src mat
|
||||
cv::Mat mat1;
|
||||
cv::Mat dst;
|
||||
|
||||
// set up roi
|
||||
int roicols;
|
||||
int roirows;
|
||||
int src1x;
|
||||
int src1y;
|
||||
int dstx;
|
||||
int dsty;
|
||||
|
||||
//src mat with roi
|
||||
cv::Mat mat1_roi;
|
||||
cv::Mat dst_roi;
|
||||
//ocl dst mat for testing
|
||||
cv::ocl::oclMat gdst_whole;
|
||||
|
||||
//ocl mat with roi
|
||||
cv::ocl::oclMat gmat1;
|
||||
cv::ocl::oclMat gdst;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
type = GET_PARAM(0);
|
||||
ksize = GET_PARAM(1);
|
||||
bordertype = GET_PARAM(2);
|
||||
bordertype = GET_PARAM(3);
|
||||
|
||||
cv::RNG &rng = TS::ptr()->get_rng();
|
||||
cv::Size size(MWIDTH, MHEIGHT);
|
||||
@ -739,36 +372,6 @@ PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int)
|
||||
|
||||
}
|
||||
|
||||
void random_roi()
|
||||
{
|
||||
#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);
|
||||
src1y = rng.uniform(0, mat1.rows - roirows);
|
||||
dstx = rng.uniform(0, dst.cols - roicols);
|
||||
dsty = rng.uniform(0, dst.rows - roirows);
|
||||
#else
|
||||
roicols = mat1.cols;
|
||||
roirows = mat1.rows;
|
||||
src1x = 0;
|
||||
src1y = 0;
|
||||
dstx = 0;
|
||||
dsty = 0;
|
||||
#endif
|
||||
|
||||
mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows));
|
||||
dst_roi = dst(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
gdst_whole = dst;
|
||||
gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows));
|
||||
|
||||
|
||||
gmat1 = mat1_roi;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
TEST_P(GaussianBlur, Mat)
|
||||
@ -782,47 +385,52 @@ TEST_P(GaussianBlur, Mat)
|
||||
|
||||
cv::Mat cpu_dst;
|
||||
gdst_whole.download(cpu_dst);
|
||||
char sss[1024];
|
||||
sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty);
|
||||
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, sss);
|
||||
EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filter, Blur, Combine(Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
|
||||
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(Size(0, 0)), //not use
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE, (MatType)cv::BORDER_REFLECT, (MatType)cv::BORDER_REFLECT_101)));
|
||||
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filters, Laplacian, Combine(
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4),
|
||||
Values(1, 3)));
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4),
|
||||
Values(Size(3, 3)),
|
||||
Values(Size(0, 0)), //not use
|
||||
Values(0))); //not use
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filter, Erode, Combine(Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4), Values(1)));
|
||||
|
||||
//INSTANTIATE_TEST_CASE_P(Filter, Erode, Combine(Values(CV_8UC1, CV_8UC1), Values(false)));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filter, Dilate, Combine(Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4), Values(1)));
|
||||
|
||||
//INSTANTIATE_TEST_CASE_P(Filter, Dilate, Combine(Values(CV_8UC1, CV_8UC1), Values(false)));
|
||||
INSTANTIATE_TEST_CASE_P(Filter, ErodeDilate, Combine(
|
||||
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, Sobel, Combine(Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4),
|
||||
Values(1, 2), Values(0, 1), Values(3, 5), Values((MatType)cv::BORDER_CONSTANT,
|
||||
(MatType)cv::BORDER_REPLICATE)));
|
||||
INSTANTIATE_TEST_CASE_P(Filter, Sobel, Combine(
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4),
|
||||
Values(Size(3, 3), Size(5, 5)),
|
||||
Values(Size(1, 0), Size(1, 1), Size(2, 0), Size(2, 1)),
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
|
||||
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filter, Scharr, Combine(
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), Values(0, 1), Values(0, 1),
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
|
||||
Values(Size(0, 0)), //not use
|
||||
Values(Size(0, 0), Size(0, 1), Size(1, 0), Size(1, 1)),
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Filter, GaussianBlur, Combine(
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
|
||||
Values(cv::Size(3, 3), cv::Size(5, 5)),
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
|
||||
Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4),
|
||||
Values(Size(3, 3), Size(5, 5)),
|
||||
Values(Size(0, 0)), //not use
|
||||
Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE)));
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user