Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
e4d33782
Commit
e4d33782
authored
May 08, 2013
by
yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simplify logics in filter tests, remove redundant code in arithm tests
parent
52dbbae8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
144 additions
and
668 deletions
+144
-668
test_arithm.cpp
modules/ocl/test/test_arithm.cpp
+74
-206
test_filters.cpp
modules/ocl/test/test_filters.cpp
+70
-462
No files found.
modules/ocl/test/test_arithm.cpp
View file @
e4d33782
...
...
@@ -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
)
<<
sss
;
EXPECT_DOUBLE_EQ
(
maxVal_
,
maxVal
)
<<
sss
;
EXPECT_DOUBLE_EQ
(
minlocVal_
,
minlocVal
)
<<
sss
;
EXPECT_DOUBLE_EQ
(
maxlocVal_
,
maxlocVal
)
<<
sss
;
EXPECT_DOUBLE_EQ
(
minVal_
,
minVal
);
EXPECT_DOUBLE_EQ
(
maxVal_
,
maxVal
);
EXPECT_DOUBLE_EQ
(
minlocVal_
,
minlocVal
);
EXPECT_DOUBLE_EQ
(
maxlocVal_
,
maxlocVal
);
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
,
""
);
}
}
...
...
modules/ocl/test/test_filters.cpp
View file @
e4d33782
...
...
@@ -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,191 +57,87 @@ 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
);
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
);
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
)
struct
Blur
:
FilterTestBase
{
int
type
;
cv
::
Size
ksize
;
int
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
;
//std::vector<cv::ocl::Info> oclinfo;
//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
);
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
//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
(
Blur
,
Mat
)
...
...
@@ -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
);
mat
1
=
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
(
mat
1_roi
,
dst_roi
,
-
1
,
ksize
.
width
,
1
);
cv
::
ocl
::
Laplacian
(
gmat
1
,
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
::
erod
e
(
mat1_roi
,
dst_roi
,
kernel
,
Point
(
-
1
,
-
1
),
iterations
);
cv
::
ocl
::
erod
e
(
gmat1
,
gdst
,
kernel
,
Point
(
-
1
,
-
1
),
iterations
);
cv
::
dilat
e
(
mat1_roi
,
dst_roi
,
kernel
,
Point
(
-
1
,
-
1
),
iterations
);
cv
::
ocl
::
dilat
e
(
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
)));
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
)));
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, 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
)));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment