mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 23:33:05 +04:00
Merge pull request #2494 from ilya-lavrenov:tapi_merge
This commit is contained in:
@@ -1299,7 +1299,7 @@ static bool ocl_arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst,
|
||||
int type1 = _src1.type(), depth1 = CV_MAT_DEPTH(type1), cn = CV_MAT_CN(type1);
|
||||
bool haveMask = !_mask.empty();
|
||||
|
||||
if( ((haveMask || haveScalar) && cn > 4) )
|
||||
if ( (haveMask || haveScalar) && cn > 4 )
|
||||
return false;
|
||||
|
||||
int dtype = _dst.type(), ddepth = CV_MAT_DEPTH(dtype), wdepth = std::max(CV_32S, CV_MAT_DEPTH(wtype));
|
||||
@@ -1320,14 +1320,11 @@ static bool ocl_arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst,
|
||||
"-D convertToWT2=%s -D convertToDT=%s%s -D cn=%d",
|
||||
(haveMask ? "MASK_" : ""), (haveScalar ? "UNARY_OP" : "BINARY_OP"),
|
||||
oclop2str[oclop], ocl::typeToStr(CV_MAKETYPE(depth1, kercn)),
|
||||
ocl::typeToStr(CV_MAKETYPE(depth1, 1)),
|
||||
ocl::typeToStr(CV_MAKETYPE(depth2, kercn)),
|
||||
ocl::typeToStr(CV_MAKETYPE(depth2, 1)),
|
||||
ocl::typeToStr(CV_MAKETYPE(ddepth, kercn)),
|
||||
ocl::typeToStr(CV_MAKETYPE(ddepth, 1)),
|
||||
ocl::typeToStr(CV_MAKETYPE(wdepth, kercn)),
|
||||
ocl::typeToStr(depth1), ocl::typeToStr(CV_MAKETYPE(depth2, kercn)),
|
||||
ocl::typeToStr(depth2), ocl::typeToStr(CV_MAKETYPE(ddepth, kercn)),
|
||||
ocl::typeToStr(ddepth), ocl::typeToStr(CV_MAKETYPE(wdepth, kercn)),
|
||||
ocl::typeToStr(CV_MAKETYPE(wdepth, scalarcn)),
|
||||
ocl::typeToStr(CV_MAKETYPE(wdepth, 1)), wdepth,
|
||||
ocl::typeToStr(wdepth), wdepth,
|
||||
ocl::convertTypeStr(depth1, wdepth, kercn, cvtstr[0]),
|
||||
ocl::convertTypeStr(depth2, wdepth, kercn, cvtstr[1]),
|
||||
ocl::convertTypeStr(wdepth, ddepth, kercn, cvtstr[2]),
|
||||
@@ -1347,7 +1344,7 @@ static bool ocl_arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst,
|
||||
}
|
||||
|
||||
ocl::Kernel k("KF", ocl::core::arithm_oclsrc, opts);
|
||||
if( k.empty() )
|
||||
if (k.empty())
|
||||
return false;
|
||||
|
||||
UMat src1 = _src1.getUMat(), src2;
|
||||
@@ -1388,12 +1385,12 @@ static bool ocl_arithm_op(InputArray _src1, InputArray _src2, OutputArray _dst,
|
||||
|
||||
if( !haveMask )
|
||||
{
|
||||
if(n == 0)
|
||||
if (n == 0)
|
||||
k.args(src1arg, src2arg, dstarg);
|
||||
else if(n == 1)
|
||||
else if (n == 1)
|
||||
k.args(src1arg, src2arg, dstarg,
|
||||
ocl::KernelArg(0, 0, 0, 0, usrdata_p, usrdata_esz));
|
||||
else if(n == 3)
|
||||
else if (n == 3)
|
||||
k.args(src1arg, src2arg, dstarg,
|
||||
ocl::KernelArg(0, 0, 0, 0, usrdata_p, usrdata_esz),
|
||||
ocl::KernelArg(0, 0, 0, 0, usrdata_p + usrdata_esz, usrdata_esz),
|
||||
|
||||
@@ -415,42 +415,54 @@ namespace cv {
|
||||
|
||||
static bool ocl_merge( InputArrayOfArrays _mv, OutputArray _dst )
|
||||
{
|
||||
std::vector<UMat> src;
|
||||
std::vector<UMat> src, ksrc;
|
||||
_mv.getUMatVector(src);
|
||||
CV_Assert(!src.empty());
|
||||
|
||||
int type = src[0].type(), depth = CV_MAT_DEPTH(type);
|
||||
Size size = src[0].size();
|
||||
|
||||
size_t srcsize = src.size();
|
||||
for (size_t i = 0; i < srcsize; ++i)
|
||||
for (size_t i = 0, srcsize = src.size(); i < srcsize; ++i)
|
||||
{
|
||||
int itype = src[i].type(), icn = CV_MAT_CN(itype), idepth = CV_MAT_DEPTH(itype);
|
||||
if (src[i].dims > 2 || icn != 1)
|
||||
int itype = src[i].type(), icn = CV_MAT_CN(itype), idepth = CV_MAT_DEPTH(itype),
|
||||
esz1 = CV_ELEM_SIZE1(idepth);
|
||||
if (src[i].dims > 2)
|
||||
return false;
|
||||
CV_Assert(size == src[i].size() && depth == idepth);
|
||||
}
|
||||
|
||||
String srcargs, srcdecl, processelem;
|
||||
for (size_t i = 0; i < srcsize; ++i)
|
||||
CV_Assert(size == src[i].size() && depth == idepth);
|
||||
|
||||
for (int cn = 0; cn < icn; ++cn)
|
||||
{
|
||||
UMat tsrc = src[i];
|
||||
tsrc.offset += cn * esz1;
|
||||
ksrc.push_back(tsrc);
|
||||
}
|
||||
}
|
||||
int dcn = (int)ksrc.size();
|
||||
|
||||
String srcargs, srcdecl, processelem, cndecl;
|
||||
for (int i = 0; i < dcn; ++i)
|
||||
{
|
||||
srcargs += format("DECLARE_SRC_PARAM(%d)", i);
|
||||
srcdecl += format("DECLARE_DATA(%d)", i);
|
||||
processelem += format("PROCESS_ELEM(%d)", i);
|
||||
cndecl += format(" -D scn%d=%d", i, ksrc[i].channels());
|
||||
}
|
||||
|
||||
ocl::Kernel k("merge", ocl::core::split_merge_oclsrc,
|
||||
format("-D OP_MERGE -D cn=%d -D T=%s -D DECLARE_SRC_PARAMS_N=%s -D DECLARE_DATA_N=%s -D PROCESS_ELEMS_N=%s",
|
||||
(int)srcsize, ocl::memopTypeToStr(depth), srcargs.c_str(), srcdecl.c_str(), processelem.c_str()));
|
||||
format("-D OP_MERGE -D cn=%d -D T=%s -D DECLARE_SRC_PARAMS_N=%s"
|
||||
" -D DECLARE_DATA_N=%s -D PROCESS_ELEMS_N=%s%s",
|
||||
dcn, ocl::memopTypeToStr(depth), srcargs.c_str(),
|
||||
srcdecl.c_str(), processelem.c_str(), cndecl.c_str()));
|
||||
if (k.empty())
|
||||
return false;
|
||||
|
||||
_dst.create(size, CV_MAKE_TYPE(depth, (int)srcsize));
|
||||
_dst.create(size, CV_MAKE_TYPE(depth, dcn));
|
||||
UMat dst = _dst.getUMat();
|
||||
|
||||
int argidx = 0;
|
||||
for (size_t i = 0; i < srcsize; ++i)
|
||||
argidx = k.set(argidx, ocl::KernelArg::ReadOnlyNoSize(src[i]));
|
||||
for (int i = 0; i < dcn; ++i)
|
||||
argidx = k.set(argidx, ocl::KernelArg::ReadOnlyNoSize(ksrc[i]));
|
||||
k.set(argidx, ocl::KernelArg::WriteOnly(dst));
|
||||
|
||||
size_t globalsize[2] = { dst.cols, dst.rows };
|
||||
|
||||
@@ -2041,7 +2041,7 @@ static bool ocl_pow(InputArray _src, double power, OutputArray _dst,
|
||||
const char * const op = issqrt ? "OP_SQRT" : is_ipower ? "OP_POWN" : "OP_POW";
|
||||
|
||||
ocl::Kernel k("KF", ocl::core::arithm_oclsrc,
|
||||
format("-D dstT=%s -D %s -D UNARY_OP%s", ocl::typeToStr(CV_MAKE_TYPE(depth, 1)),
|
||||
format("-D dstT=%s -D %s -D UNARY_OP%s", ocl::typeToStr(depth),
|
||||
op, doubleSupport ? " -D DOUBLE_SUPPORT" : ""));
|
||||
if (k.empty())
|
||||
return false;
|
||||
@@ -2081,7 +2081,7 @@ void pow( InputArray _src, double power, OutputArray _dst )
|
||||
{
|
||||
if( ipower < 0 )
|
||||
{
|
||||
divide( 1., _src, _dst );
|
||||
divide( Scalar::all(1), _src, _dst );
|
||||
if( ipower == -1 )
|
||||
return;
|
||||
ipower = -ipower;
|
||||
@@ -2115,10 +2115,7 @@ void pow( InputArray _src, double power, OutputArray _dst )
|
||||
|
||||
Mat src, dst;
|
||||
if (same)
|
||||
{
|
||||
dst = _dst.getMat();
|
||||
src = dst;
|
||||
}
|
||||
src = dst = _dst.getMat();
|
||||
else
|
||||
{
|
||||
src = _src.getMat();
|
||||
|
||||
@@ -4348,7 +4348,7 @@ int predictOptimalVectorWidth(InputArray src1, InputArray src2, InputArray src3,
|
||||
InputArray src4, InputArray src5, InputArray src6,
|
||||
InputArray src7, InputArray src8, InputArray src9)
|
||||
{
|
||||
int type = src1.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type);
|
||||
int type = src1.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type), esz = CV_ELEM_SIZE(depth);
|
||||
Size ssize = src1.size();
|
||||
const ocl::Device & d = ocl::Device::getDefault();
|
||||
|
||||
@@ -4372,7 +4372,8 @@ int predictOptimalVectorWidth(InputArray src1, InputArray src2, InputArray src3,
|
||||
PROCESS_SRC(src9);
|
||||
|
||||
size_t size = offsets.size();
|
||||
std::vector<int> dividers(size, width);
|
||||
int wsz = width * esz;
|
||||
std::vector<int> dividers(size, wsz);
|
||||
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
while (offsets[i] % dividers[i] != 0 || steps[i] % dividers[i] != 0 || cols[i] % dividers[i] != 0)
|
||||
@@ -4380,7 +4381,7 @@ int predictOptimalVectorWidth(InputArray src1, InputArray src2, InputArray src3,
|
||||
|
||||
// default strategy
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
if (dividers[i] != width)
|
||||
if (dividers[i] != wsz)
|
||||
{
|
||||
width = 1;
|
||||
break;
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
#define DECLARE_SRC_PARAM(index) __global const uchar * src##index##ptr, int src##index##_step, int src##index##_offset,
|
||||
#define DECLARE_DATA(index) __global const T * src##index = \
|
||||
(__global T *)(src##index##ptr + mad24(src##index##_step, y, mad24(x, (int)sizeof(T), src##index##_offset)));
|
||||
(__global T *)(src##index##ptr + mad24(src##index##_step, y, mad24(x, (int)sizeof(T) * scn##index, src##index##_offset)));
|
||||
#define PROCESS_ELEM(index) dst[index] = src##index[0];
|
||||
|
||||
__kernel void merge(DECLARE_SRC_PARAMS_N
|
||||
|
||||
@@ -57,9 +57,9 @@ PARAM_TEST_CASE(Lut, MatDepth, MatDepth, Channels, bool, bool)
|
||||
int cn;
|
||||
bool use_roi, same_cn;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_INPUT_PARAMETER(lut)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_INPUT_PARAMETER(lut);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -87,14 +87,14 @@ PARAM_TEST_CASE(Lut, MatDepth, MatDepth, Channels, bool, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, dst_type, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(lut)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(lut);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
|
||||
void Near(double threshold = 0.)
|
||||
{
|
||||
OCL_EXPECT_MATS_NEAR(dst, threshold)
|
||||
OCL_EXPECT_MATS_NEAR(dst, threshold);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -121,11 +121,11 @@ PARAM_TEST_CASE(ArithmTestBase, MatDepth, Channels, bool)
|
||||
cv::Scalar val;
|
||||
cv::Scalar val_in_range;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2)
|
||||
TEST_DECLARE_INPUT_PARAMETER(mask)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2);
|
||||
TEST_DECLARE_INPUT_PARAMETER(mask);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -167,21 +167,21 @@ PARAM_TEST_CASE(ArithmTestBase, MatDepth, Channels, bool)
|
||||
rng.uniform(minV, maxV), rng.uniform(minV, maxV));
|
||||
}
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(mask)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(mask);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2);
|
||||
}
|
||||
|
||||
void Near(double threshold = 0.)
|
||||
{
|
||||
OCL_EXPECT_MATS_NEAR(dst1, threshold)
|
||||
OCL_EXPECT_MATS_NEAR(dst1, threshold);
|
||||
}
|
||||
|
||||
void Near1(double threshold = 0.)
|
||||
{
|
||||
OCL_EXPECT_MATS_NEAR(dst2, threshold)
|
||||
OCL_EXPECT_MATS_NEAR(dst2, threshold);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -556,6 +556,12 @@ OCL_TEST_P(Transpose, Mat)
|
||||
{
|
||||
generateTestData();
|
||||
|
||||
Size roiSize = src1_roi.size();
|
||||
Border dst1Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst1, dst1_roi, Size(roiSize.height, roiSize.width), dst1Border, src1.type(), 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(dst1);
|
||||
|
||||
OCL_OFF(cv::transpose(src1_roi, dst1_roi));
|
||||
OCL_ON(cv::transpose(usrc1_roi, udst1_roi));
|
||||
|
||||
@@ -580,7 +586,7 @@ OCL_TEST_P(Transpose, SquareInplace)
|
||||
OCL_OFF(cv::transpose(src1_roi, src1_roi));
|
||||
OCL_ON(cv::transpose(usrc1_roi, usrc1_roi));
|
||||
|
||||
OCL_EXPECT_MATS_NEAR(src1, 0)
|
||||
OCL_EXPECT_MATS_NEAR(src1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -761,7 +767,7 @@ OCL_TEST_P(Bitwise_not, Mat)
|
||||
typedef ArithmTestBase Compare;
|
||||
|
||||
static const int cmp_codes[] = { CMP_EQ, CMP_GT, CMP_GE, CMP_LT, CMP_LE, CMP_NE };
|
||||
static const char* cmp_strs[] = { "CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE" };
|
||||
static const char * cmp_strs[] = { "CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE" };
|
||||
static const int cmp_num = sizeof(cmp_codes) / sizeof(int);
|
||||
|
||||
OCL_TEST_P(Compare, Mat)
|
||||
@@ -826,12 +832,14 @@ OCL_TEST_P(Pow, Mat)
|
||||
for (int j = 0; j < test_loop_times; j++)
|
||||
for (int k = 0, size = sizeof(pows) / sizeof(double); k < size; ++k)
|
||||
{
|
||||
SCOPED_TRACE(pows[k]);
|
||||
|
||||
generateTestData();
|
||||
|
||||
OCL_OFF(cv::pow(src1_roi, pows[k], dst1_roi));
|
||||
OCL_ON(cv::pow(usrc1_roi, pows[k], udst1_roi));
|
||||
|
||||
Near(1); // FIXIT: Relative error check!
|
||||
OCL_EXPECT_MATS_NEAR_RELATIVE(dst1, 1e-5);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -893,8 +901,8 @@ struct RepeatTestCase :
|
||||
Border dst1Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst1, dst1_roi, dstRoiSize, dst1Border, type, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1450,10 +1458,10 @@ PARAM_TEST_CASE(InRange, MatDepth, Channels, bool /*Scalar or not*/, bool /*Roi*
|
||||
bool scalars, use_roi;
|
||||
cv::Scalar val1, val2;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -1485,15 +1493,15 @@ PARAM_TEST_CASE(InRange, MatDepth, Channels, bool /*Scalar or not*/, bool /*Roi*
|
||||
val2 = cv::Scalar(rng.uniform(-100.0, 100.0), rng.uniform(-100.0, 100.0),
|
||||
rng.uniform(-100.0, 100.0), rng.uniform(-100.0, 100.0));
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
|
||||
void Near()
|
||||
{
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0)
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1565,7 +1573,7 @@ PARAM_TEST_CASE(PatchNaNs, Channels, bool)
|
||||
bool use_roi;
|
||||
double value;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -1592,12 +1600,12 @@ PARAM_TEST_CASE(PatchNaNs, Channels, bool)
|
||||
|
||||
value = randomDouble(-100, 100);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
}
|
||||
|
||||
void Near()
|
||||
{
|
||||
OCL_EXPECT_MATS_NEAR(src, 0)
|
||||
OCL_EXPECT_MATS_NEAR(src, 0);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1640,8 +1648,8 @@ PARAM_TEST_CASE(Reduce, std::pair<MatDepth, MatDepth>, Channels, int, bool)
|
||||
int sdepth, ddepth, cn, dim, dtype;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -1666,8 +1674,8 @@ PARAM_TEST_CASE(Reduce, std::pair<MatDepth, MatDepth>, Channels, int, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, dstRoiSize, dstBorder, dtype, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1683,7 +1691,7 @@ OCL_TEST_P(ReduceSum, Mat)
|
||||
OCL_ON(cv::reduce(usrc_roi, udst_roi, dim, CV_REDUCE_SUM, dtype));
|
||||
|
||||
double eps = ddepth <= CV_32S ? 1 : 1e-4;
|
||||
OCL_EXPECT_MATS_NEAR(dst, eps)
|
||||
OCL_EXPECT_MATS_NEAR(dst, eps);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1698,7 +1706,7 @@ OCL_TEST_P(ReduceMax, Mat)
|
||||
OCL_OFF(cv::reduce(src_roi, dst_roi, dim, CV_REDUCE_MAX, dtype));
|
||||
OCL_ON(cv::reduce(usrc_roi, udst_roi, dim, CV_REDUCE_MAX, dtype));
|
||||
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0)
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1713,7 +1721,7 @@ OCL_TEST_P(ReduceMin, Mat)
|
||||
OCL_OFF(cv::reduce(src_roi, dst_roi, dim, CV_REDUCE_MIN, dtype));
|
||||
OCL_ON(cv::reduce(usrc_roi, udst_roi, dim, CV_REDUCE_MIN, dtype));
|
||||
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0)
|
||||
OCL_EXPECT_MATS_NEAR(dst, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1729,7 +1737,7 @@ OCL_TEST_P(ReduceAvg, Mat)
|
||||
OCL_ON(cv::reduce(usrc_roi, udst_roi, dim, CV_REDUCE_AVG, dtype));
|
||||
|
||||
double eps = ddepth <= CV_32S ? 1 : 5e-6;
|
||||
OCL_EXPECT_MATS_NEAR(dst, eps)
|
||||
OCL_EXPECT_MATS_NEAR(dst, eps);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -54,16 +54,16 @@ namespace ocl {
|
||||
|
||||
//////////////////////////////////////// Merge ///////////////////////////////////////////////
|
||||
|
||||
PARAM_TEST_CASE(Merge, MatDepth, Channels, bool)
|
||||
PARAM_TEST_CASE(Merge, MatDepth, int, bool)
|
||||
{
|
||||
int depth, cn;
|
||||
int depth, nsrc;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src4)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src4);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
std::vector<Mat> src_roi;
|
||||
std::vector<UMat> usrc_roi;
|
||||
@@ -71,10 +71,15 @@ PARAM_TEST_CASE(Merge, MatDepth, Channels, bool)
|
||||
virtual void SetUp()
|
||||
{
|
||||
depth = GET_PARAM(0);
|
||||
cn = GET_PARAM(1);
|
||||
nsrc = GET_PARAM(1);
|
||||
use_roi = GET_PARAM(2);
|
||||
|
||||
CV_Assert(cn >= 1 && cn <= 4);
|
||||
CV_Assert(nsrc >= 1 && nsrc <= 4);
|
||||
}
|
||||
|
||||
int type()
|
||||
{
|
||||
return CV_MAKE_TYPE(depth, randomInt(1, 3));
|
||||
}
|
||||
|
||||
void generateTestData()
|
||||
@@ -83,34 +88,39 @@ PARAM_TEST_CASE(Merge, MatDepth, Channels, bool)
|
||||
|
||||
{
|
||||
Border src1Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(src1, src1_roi, roiSize, src1Border, depth, 2, 11);
|
||||
randomSubMat(src1, src1_roi, roiSize, src1Border, type(), 2, 11);
|
||||
|
||||
Border src2Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(src2, src2_roi, roiSize, src2Border, depth, -1540, 1740);
|
||||
randomSubMat(src2, src2_roi, roiSize, src2Border, type(), -1540, 1740);
|
||||
|
||||
Border src3Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(src3, src3_roi, roiSize, src3Border, depth, -1540, 1740);
|
||||
randomSubMat(src3, src3_roi, roiSize, src3Border, type(), -1540, 1740);
|
||||
|
||||
Border src4Border = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(src4, src4_roi, roiSize, src4Border, depth, -1540, 1740);
|
||||
randomSubMat(src4, src4_roi, roiSize, src4Border, type(), -1540, 1740);
|
||||
}
|
||||
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, CV_MAKE_TYPE(depth, cn), 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src4)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src4);
|
||||
|
||||
src_roi.push_back(src1_roi), usrc_roi.push_back(usrc1_roi);
|
||||
if (cn >= 2)
|
||||
if (nsrc >= 2)
|
||||
src_roi.push_back(src2_roi), usrc_roi.push_back(usrc2_roi);
|
||||
if (cn >= 3)
|
||||
if (nsrc >= 3)
|
||||
src_roi.push_back(src3_roi), usrc_roi.push_back(usrc3_roi);
|
||||
if (cn >= 4)
|
||||
if (nsrc >= 4)
|
||||
src_roi.push_back(src4_roi), usrc_roi.push_back(usrc4_roi);
|
||||
|
||||
int dcn = 0;
|
||||
for (int i = 0; i < nsrc; ++i)
|
||||
dcn += src_roi[i].channels();
|
||||
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, CV_MAKE_TYPE(depth, dcn), 5, 16);
|
||||
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
|
||||
void Near(double threshold = 0.)
|
||||
@@ -139,11 +149,11 @@ PARAM_TEST_CASE(Split, MatType, Channels, bool)
|
||||
int depth, cn;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst3)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst4)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst3);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst4);
|
||||
|
||||
std::vector<Mat> dst_roi, dst;
|
||||
std::vector<UMat> udst_roi, udst;
|
||||
@@ -177,11 +187,11 @@ PARAM_TEST_CASE(Split, MatType, Channels, bool)
|
||||
randomSubMat(dst4, dst4_roi, roiSize, dst4Border, depth, -1540, 1740);
|
||||
}
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst3)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst4)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst3);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst4);
|
||||
|
||||
dst_roi.push_back(dst1_roi), udst_roi.push_back(udst1_roi),
|
||||
dst.push_back(dst1), udst.push_back(udst1);
|
||||
@@ -221,14 +231,14 @@ PARAM_TEST_CASE(MixChannels, MatType, bool)
|
||||
int depth;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src4)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst3)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst4)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src3);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src4);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst1);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst2);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst3);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst4);
|
||||
|
||||
std::vector<Mat> src_roi, dst_roi, dst;
|
||||
std::vector<UMat> usrc_roi, udst_roi, udst;
|
||||
@@ -287,15 +297,15 @@ PARAM_TEST_CASE(MixChannels, MatType, bool)
|
||||
randomSubMat(dst4, dst4_roi, roiSize, dst4Border, type(), -1540, 1740);
|
||||
}
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src4)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src3);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src4);
|
||||
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst3)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst4)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst1);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst2);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst3);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst4);
|
||||
|
||||
int nsrc = randomInt(1, 5), ndst = randomInt(1, 5);
|
||||
|
||||
@@ -360,8 +370,8 @@ PARAM_TEST_CASE(InsertChannel, MatDepth, Channels, bool)
|
||||
int depth, cn, coi;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -381,8 +391,8 @@ PARAM_TEST_CASE(InsertChannel, MatDepth, Channels, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, CV_MAKE_TYPE(depth, cn), 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -406,8 +416,8 @@ PARAM_TEST_CASE(ExtractChannel, MatDepth, Channels, bool)
|
||||
int depth, cn, coi;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -427,8 +437,8 @@ PARAM_TEST_CASE(ExtractChannel, MatDepth, Channels, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, depth, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -447,7 +457,7 @@ OCL_TEST_P(ExtractChannel, Accuracy)
|
||||
|
||||
//////////////////////////////////////// Instantiation ///////////////////////////////////////////////
|
||||
|
||||
OCL_INSTANTIATE_TEST_CASE_P(Channels, Merge, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
|
||||
OCL_INSTANTIATE_TEST_CASE_P(Channels, Merge, Combine(OCL_ALL_DEPTHS, Values(1, 2, 3, 4), Bool()));
|
||||
OCL_INSTANTIATE_TEST_CASE_P(Channels, Split, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
|
||||
OCL_INSTANTIATE_TEST_CASE_P(Channels, MixChannels, Combine(OCL_ALL_DEPTHS, Bool()));
|
||||
OCL_INSTANTIATE_TEST_CASE_P(Channels, InsertChannel, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
|
||||
|
||||
@@ -60,8 +60,8 @@ PARAM_TEST_CASE(Dft, cv::Size, MatDepth, bool, bool, bool, bool)
|
||||
int dft_flags, depth;
|
||||
bool inplace;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -106,9 +106,9 @@ PARAM_TEST_CASE(MulSpectrums, bool, bool)
|
||||
{
|
||||
bool ccorr, useRoi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src1);
|
||||
TEST_DECLARE_INPUT_PARAMETER(src2);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -129,9 +129,9 @@ PARAM_TEST_CASE(MulSpectrums, bool, bool)
|
||||
Border dstBorder = randomBorder(0, useRoi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, srcRoiSize, dstBorder, CV_32FC2, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src1);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src2);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -67,10 +67,10 @@ PARAM_TEST_CASE(Gemm,
|
||||
|
||||
double alpha, beta;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(A)
|
||||
TEST_DECLARE_INPUT_PARAMETER(B)
|
||||
TEST_DECLARE_INPUT_PARAMETER(C)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(D)
|
||||
TEST_DECLARE_INPUT_PARAMETER(A);
|
||||
TEST_DECLARE_INPUT_PARAMETER(B);
|
||||
TEST_DECLARE_INPUT_PARAMETER(C);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(D);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -119,10 +119,10 @@ PARAM_TEST_CASE(Gemm,
|
||||
alpha = randomDouble(-4, 4);
|
||||
beta = randomDouble(-4, 4);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(A)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(B)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(C)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(D)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(A);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(B);
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(C);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(D);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -59,8 +59,8 @@ PARAM_TEST_CASE(ConvertTo, MatDepth, MatDepth, Channels, bool)
|
||||
int src_depth, cn, dstType;
|
||||
bool use_roi;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -80,8 +80,8 @@ PARAM_TEST_CASE(ConvertTo, MatDepth, MatDepth, Channels, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, dstType, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -108,9 +108,9 @@ PARAM_TEST_CASE(CopyTo, MatDepth, Channels, bool, bool)
|
||||
int depth, cn;
|
||||
bool use_roi, use_mask;
|
||||
|
||||
TEST_DECLARE_INPUT_PARAMETER(src)
|
||||
TEST_DECLARE_INPUT_PARAMETER(mask)
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst)
|
||||
TEST_DECLARE_INPUT_PARAMETER(src);
|
||||
TEST_DECLARE_INPUT_PARAMETER(mask);
|
||||
TEST_DECLARE_OUTPUT_PARAMETER(dst);
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
@@ -139,10 +139,10 @@ PARAM_TEST_CASE(CopyTo, MatDepth, Channels, bool, bool)
|
||||
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
|
||||
randomSubMat(dst, dst_roi, roiSize, dstBorder, type, 5, 16);
|
||||
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(src);
|
||||
if (use_mask)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(mask)
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
|
||||
UMAT_UPLOAD_INPUT_PARAMETER(mask);
|
||||
UMAT_UPLOAD_OUTPUT_PARAMETER(dst);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -169,7 +169,7 @@ OCL_TEST_P(CopyTo, Accuracy)
|
||||
}
|
||||
|
||||
OCL_INSTANTIATE_TEST_CASE_P(MatrixOperation, ConvertTo, Combine(
|
||||
OCL_ALL_DEPTHS, OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
|
||||
OCL_ALL_DEPTHS, OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
|
||||
|
||||
OCL_INSTANTIATE_TEST_CASE_P(MatrixOperation, CopyTo, Combine(
|
||||
OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool(), Bool()));
|
||||
|
||||
Reference in New Issue
Block a user