|
|
|
@ -57,8 +57,8 @@ using namespace cv; |
|
|
|
|
|
|
|
|
|
PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) |
|
|
|
|
{ |
|
|
|
|
Mat a, b, roi_a, roi_b; |
|
|
|
|
UMat ua, ub, roi_ua, roi_ub; |
|
|
|
|
Mat a; |
|
|
|
|
UMat ua; |
|
|
|
|
int type; |
|
|
|
|
int depth; |
|
|
|
|
int cn; |
|
|
|
@ -74,9 +74,7 @@ PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) |
|
|
|
|
useRoi = GET_PARAM(3); |
|
|
|
|
type = CV_MAKE_TYPE(depth, cn); |
|
|
|
|
a = randomMat(size, type, -100, 100); |
|
|
|
|
b = randomMat(size, type, -100, 100); |
|
|
|
|
a.copyTo(ua); |
|
|
|
|
b.copyTo(ub); |
|
|
|
|
int roi_shift_x = randomInt(0, size.width-1); |
|
|
|
|
int roi_shift_y = randomInt(0, size.height-1); |
|
|
|
|
roi_size = Size(size.width - roi_shift_x, size.height - roi_shift_y); |
|
|
|
@ -116,6 +114,9 @@ CORE_TEST_P(UMatBasicTests, createUMat) |
|
|
|
|
|
|
|
|
|
CORE_TEST_P(UMatBasicTests, swap) |
|
|
|
|
{ |
|
|
|
|
Mat b = randomMat(size, type, -100, 100); |
|
|
|
|
UMat ub; |
|
|
|
|
b.copyTo(ub); |
|
|
|
|
if(useRoi) |
|
|
|
|
{ |
|
|
|
|
ua = UMat(ua,roi); |
|
|
|
@ -133,7 +134,7 @@ CORE_TEST_P(UMatBasicTests, base) |
|
|
|
|
{ |
|
|
|
|
ua = UMat(ua,roi); |
|
|
|
|
} |
|
|
|
|
ub = ua.clone(); |
|
|
|
|
UMat ub = ua.clone(); |
|
|
|
|
EXPECT_MAT_NEAR(ub,ua,0); |
|
|
|
|
|
|
|
|
|
ASSERT_EQ(ua.channels(), cn); |
|
|
|
@ -168,6 +169,9 @@ CORE_TEST_P(UMatBasicTests, base) |
|
|
|
|
|
|
|
|
|
CORE_TEST_P(UMatBasicTests, copyTo) |
|
|
|
|
{ |
|
|
|
|
UMat roi_ua; |
|
|
|
|
Mat roi_a; |
|
|
|
|
int i; |
|
|
|
|
if(useRoi) |
|
|
|
|
{ |
|
|
|
|
roi_ua = UMat(ua, roi); |
|
|
|
@ -181,44 +185,76 @@ CORE_TEST_P(UMatBasicTests, copyTo) |
|
|
|
|
ua.copyTo(a); |
|
|
|
|
EXPECT_MAT_NEAR(ua, a, 0); |
|
|
|
|
} |
|
|
|
|
ua.copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua, ub, 0); |
|
|
|
|
int i = randomInt(0, ua.cols-1); |
|
|
|
|
a.col(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(a.col(i), ub, 0); |
|
|
|
|
ua.col(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua.col(i), ub, 0); |
|
|
|
|
ua.col(i).copyTo(b); |
|
|
|
|
EXPECT_MAT_NEAR(ua.col(i), b, 0); |
|
|
|
|
i = randomInt(0, a.rows-1); |
|
|
|
|
ua.row(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua.row(i), ub, 0); |
|
|
|
|
a.row(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(a.row(i), ub, 0); |
|
|
|
|
ua.row(i).copyTo(b); |
|
|
|
|
EXPECT_MAT_NEAR(ua.row(i), b, 0); |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
ua.copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua, ub, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
i = randomInt(0, ua.cols-1); |
|
|
|
|
a.col(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(a.col(i), ub, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
ua.col(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua.col(i), ub, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
Mat b; |
|
|
|
|
ua.col(i).copyTo(b); |
|
|
|
|
EXPECT_MAT_NEAR(ua.col(i), b, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
i = randomInt(0, a.rows-1); |
|
|
|
|
ua.row(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(ua.row(i), ub, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
a.row(i).copyTo(ub); |
|
|
|
|
EXPECT_MAT_NEAR(a.row(i), ub, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
Mat b; |
|
|
|
|
ua.row(i).copyTo(b); |
|
|
|
|
EXPECT_MAT_NEAR(ua.row(i), b, 0); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CORE_TEST_P(UMatBasicTests, GetUMat) |
|
|
|
|
CORE_TEST_P(UMatBasicTests, DISABLED_GetUMat) |
|
|
|
|
{ |
|
|
|
|
if(useRoi) |
|
|
|
|
{ |
|
|
|
|
a = Mat(a, roi); |
|
|
|
|
ua = UMat(ua,roi); |
|
|
|
|
} |
|
|
|
|
ub = a.getUMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(ub, ua, 0); |
|
|
|
|
b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(b, a, 0); |
|
|
|
|
b.release(); |
|
|
|
|
b = ua.getMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(b, a, 0); |
|
|
|
|
b.release(); |
|
|
|
|
ub = ua.getMat(ACCESS_RW).getUMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(ub, ua, 0); |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
ub = a.getUMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(ub, ua, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
Mat b; |
|
|
|
|
b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(b, a, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
Mat b; |
|
|
|
|
b = ua.getMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(b, a, 0); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
UMat ub; |
|
|
|
|
ub = ua.getMat(ACCESS_RW).getUMat(ACCESS_RW); |
|
|
|
|
EXPECT_MAT_NEAR(ub, ua, 0); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(UMat, UMatBasicTests, Combine(UMAT_TEST_DEPTH, UMAT_TEST_CHANNELS, UMAT_TEST_SIZES, Bool() ) ); |
|
|
|
|
INSTANTIATE_TEST_CASE_P(UMat, UMatBasicTests, Combine(testing::Values(CV_8U), testing::Values(1, 2), |
|
|
|
|
testing::Values(cv::Size(1,1), cv::Size(1,128), cv::Size(128,1), cv::Size(128, 128), cv::Size(640,480)), Bool() ) ); |
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////// Reshape ////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
@ -478,15 +514,6 @@ CORE_TEST_P(UMatTestUMatOperations, diag) |
|
|
|
|
EXPECT_MAT_NEAR(ua.diag(), new_diag.t(), 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CORE_TEST_P(UMatTestUMatOperations, dotUMat) |
|
|
|
|
{ |
|
|
|
|
a = randomMat(size, type, -100, 100); |
|
|
|
|
b = randomMat(size, type, -100, 100); |
|
|
|
|
a.copyTo(ua); |
|
|
|
|
b.copyTo(ub); |
|
|
|
|
//ASSERT_EQ(ua.dot(ub), a.dot(b)); UMat::dot doesn't compiles
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(UMat, UMatTestUMatOperations, Combine(UMAT_TEST_DEPTH, UMAT_TEST_CHANNELS, UMAT_TEST_SIZES, Bool() )); |
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////// OpenCL ////////////////////////////////////////////////////////////////////////////
|
|
|
|
@ -559,4 +586,3 @@ TEST(UMat, setOpenCL) |
|
|
|
|
// reset state to the previous one
|
|
|
|
|
cv::ocl::setUseOpenCL(useOCL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|