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
99e3b5a2
Commit
99e3b5a2
authored
Aug 06, 2011
by
Andrey Kamaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Java API: cleaned imgproc tests; changed signatures of several java functions
parent
e2e4ee2f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
789 additions
and
717 deletions
+789
-717
ImgprocTest.java
...android_test/src/org/opencv/test/imgproc/ImgprocTest.java
+782
-717
gen_java.py
modules/java/gen_java.py
+7
-0
No files found.
modules/java/android_test/src/org/opencv/test/imgproc/ImgprocTest.java
View file @
99e3b5a2
package
org
.
opencv
.
test
.
imgproc
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
org.opencv.core.Core
;
import
org.opencv.core.CvException
;
import
org.opencv.core.CvType
;
import
org.opencv.core.Mat
;
import
org.opencv.core.Point
;
...
...
@@ -14,14 +16,12 @@ import org.opencv.core.Size;
import
org.opencv.core.TermCriteria
;
import
org.opencv.imgproc.Imgproc
;
import
org.opencv.test.OpenCVTestCase
;
import
org.opencv.test.OpenCVTestRunner
;
public
class
ImgprocTest
extends
OpenCVTestCase
{
Point
anchorPoint
;
private
Mat
dst64F
;
private
Mat
gray_64f_2
;
private
int
imgprocSz
;
private
Mat
mask
;
Size
size
;
@Override
...
...
@@ -29,122 +29,164 @@ public class ImgprocTest extends OpenCVTestCase {
super
.
setUp
();
imgprocSz
=
2
;
gray_64f_2
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
2
));
dst64F
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
0
));
mask
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
,
new
Scalar
(
1
));
anchorPoint
=
new
Point
(
2
,
2
);
size
=
new
Size
(
3
,
3
);
}
private
Mat
getMat
(
int
type
,
double
...
vals
)
{
return
new
Mat
(
matSize
,
matSize
,
type
,
new
Scalar
(
vals
));
}
private
Mat
makeMask
(
Mat
m
,
double
...
vals
)
{
m
.
submat
(
0
,
m
.
rows
(),
0
,
m
.
cols
()
/
2
).
setTo
(
new
Scalar
(
vals
));
return
m
;
}
public
void
testAccumulateMatMat
()
{
Imgproc
.
accumulate
(
gray_64f_2
,
dst64F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
2
));
assertMatEqual
(
truth
,
dst64F
,
EPS
);
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulate
(
src
,
dst
);
Imgproc
.
accumulate
(
src
,
dst2
);
dst
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_32FC1
,
new
Scalar
(
0
));
Imgproc
.
accumulate
(
gray1_32f
,
dst
);
assertMatEqual
(
gray1_32f
,
dst
,
EPS
);
assertMatEqual
(
src
,
dst
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
4
),
dst2
,
EPS
);
}
public
void
testAccumulateMatMatMat
()
{
Imgproc
.
accumulate
(
gray_64f_2
,
dst64F
,
mask
);
// TODO: use better mask
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
2
));
assertMatEqual
(
truth
,
dst64F
,
EPS
);
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
mask
=
makeMask
(
getMat
(
CvType
.
CV_8U
,
1
));
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulate
(
src
,
dst
,
mask
);
Imgproc
.
accumulate
(
src
,
dst2
,
mask
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
2
)),
dst
,
EPS
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
4
),
2
),
dst2
,
EPS
);
}
public
void
testAccumulateProductMatMatMat
()
{
Mat
src1
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
1
));
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
Mat
src2
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
src2
.
put
(
0
,
0
,
2
,
1
);
src2
.
put
(
1
,
0
,
1
,
2
);
Imgproc
.
accumulateProduct
(
src
,
src
,
dst
);
Imgproc
.
accumulateProduct
(
src
,
dst
,
dst2
);
Mat
dstImage
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
0
));
Imgproc
.
accumulateProduct
(
src1
,
src2
,
dstImage
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
2
));
truth
.
put
(
0
,
0
,
2
,
1
);
truth
.
put
(
1
,
0
,
1
,
2
);
assertMatEqual
(
truth
,
dstImage
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
4
),
dst
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
10
),
dst2
,
EPS
);
}
public
void
testAccumulateProductMatMatMatMat
()
{
Mat
src1
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
src1
.
put
(
0
,
0
,
1
,
1
);
src1
.
put
(
1
,
0
,
0
,
1
);
Mat
src2
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
src2
.
put
(
0
,
0
,
2
,
1
);
src2
.
put
(
1
,
0
,
1
,
2
);
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
mask
=
makeMask
(
getMat
(
CvType
.
CV_8U
,
1
));
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
0
));
truth
.
put
(
0
,
0
,
2
,
1
);
truth
.
put
(
1
,
0
,
0
,
2
);
Imgproc
.
accumulateProduct
(
src
,
src
,
dst
,
mask
);
Imgproc
.
accumulateProduct
(
src
,
dst
,
dst2
,
mask
);
Imgproc
.
accumulateProduct
(
src1
,
src2
,
dst64F
,
mask
);
assertMatEqual
(
truth
,
dst64F
,
EPS
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
4
)),
dst
,
EPS
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
10
),
2
),
dst2
,
EPS
);
}
public
void
testAccumulateSquareMatMat
()
{
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
4
));
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulateSquare
(
gray_64f_2
,
dst64F
);
assertMatEqual
(
truth
,
dst64F
,
EPS
);
Imgproc
.
accumulateSquare
(
src
,
dst
);
Imgproc
.
accumulateSquare
(
src
,
dst2
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
4
),
dst
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
6
),
dst2
,
EPS
);
}
public
void
testAccumulateSquareMatMatMat
()
{
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
4
));
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
mask
=
makeMask
(
getMat
(
CvType
.
CV_8U
,
1
));
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
0
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulateSquare
(
src
,
dst
,
mask
);
Imgproc
.
accumulateSquare
(
src
,
dst2
,
mask
);
Imgproc
.
accumulateSquare
(
gray_64f_2
,
dst64F
,
mask
);
assertMatEqual
(
truth
,
dst64F
,
EPS
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
4
)),
dst
,
EPS
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
6
),
2
),
dst2
,
EPS
);
}
public
void
testAccumulateWeightedMatMatDouble
()
{
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
4
));
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
4
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulateWeighted
(
src
,
dst
,
0.5
);
Imgproc
.
accumulateWeighted
(
src
,
dst2
,
2
);
Imgproc
.
accumulateWeighted
(
gray_64f_2
,
dst64F
,
2.0
);
assertMatEqual
(
truth
,
dst64F
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
3
),
dst
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
2
),
dst2
,
EPS
);
}
public
void
testAccumulateWeightedMatMatDoubleMat
()
{
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
,
new
Scalar
(
8
));
Imgproc
.
accumulateWeighted
(
gray_64f_2
,
dst64F
,
4.0
,
mask
);
assertMatEqual
(
truth
,
dst64F
,
EPS
);
Mat
src
=
getMat
(
CvType
.
CV_64F
,
2
);
Mat
mask
=
makeMask
(
getMat
(
CvType
.
CV_8U
,
1
));
Mat
dst
=
getMat
(
CvType
.
CV_64F
,
4
);
Mat
dst2
=
src
.
clone
();
Imgproc
.
accumulateWeighted
(
src
,
dst
,
0.5
,
mask
);
Imgproc
.
accumulateWeighted
(
src
,
dst2
,
2
,
mask
);
assertMatEqual
(
makeMask
(
getMat
(
CvType
.
CV_64F
,
3
),
4
),
dst
,
EPS
);
assertMatEqual
(
getMat
(
CvType
.
CV_64F
,
2
),
dst2
,
EPS
);
}
public
void
testAdaptiveThreshold
()
{
Imgproc
.
adaptiveThreshold
(
gray0
,
dst
,
2.0
,
Imgproc
.
ADAPTIVE_THRESH_GAUSSIAN_C
,
Imgproc
.
THRESH_BINARY
,
3
,
0
);
assertMatEqual
(
gray0
,
dst
);
Mat
src
=
makeMask
(
getMat
(
CvType
.
CV_8U
,
50
),
20
);
Mat
dst
=
new
Mat
();
Imgproc
.
adaptiveThreshold
(
src
,
dst
,
1
,
Imgproc
.
ADAPTIVE_THRESH_MEAN_C
,
Imgproc
.
THRESH_BINARY
,
3
,
0
);
assertEquals
(
src
.
rows
(),
Core
.
countNonZero
(
dst
));
}
public
void
testApproxPolyDP
()
{
Mat
curve
=
new
Mat
(
1
,
5
,
CvType
.
CV_32FC2
);
curve
.
put
(
0
,
0
,
1.0
,
3.0
,
2.0
,
4.0
,
3.0
,
5.0
,
4.0
,
4.0
,
5.0
,
3.0
);
Mat
approxCurve
=
new
Mat
(
3
,
1
,
CvType
.
CV_32FC2
);
approxCurve
.
put
(
0
,
0
,
1.0
,
3.0
,
3.0
,
5.0
,
5.0
,
3.0
);
curve
.
put
(
0
,
0
,
1
,
3
,
2
,
4
,
3
,
5
,
4
,
4
,
5
,
3
);
Imgproc
.
approxPolyDP
(
curve
,
dst
,
EPS
,
true
);
Mat
approxCurve
=
new
Mat
(
3
,
1
,
CvType
.
CV_32FC2
)
{
{
put
(
0
,
0
,
1
,
3
,
3
,
5
,
5
,
3
);
}
};
assertMatEqual
(
approxCurve
,
dst
,
EPS
);
}
public
void
testArcLength
()
{
Mat
curve
=
new
Mat
(
1
,
5
,
CvType
.
CV_32FC2
);
curve
.
put
(
0
,
0
,
1.0
,
3.0
,
2.0
,
4.0
,
3.0
,
5.0
,
4.0
,
4.0
,
5.0
,
3.0
);
List
<
Point
>
curve
=
Arrays
.
asList
(
new
Point
(
1
,
3
),
new
Point
(
2
,
4
),
new
Point
(
3
,
5
),
new
Point
(
4
,
4
),
new
Point
(
5
,
3
));
double
arcLength
=
Imgproc
.
arcLength
(
curve
,
false
);
double
expectedLength
=
5.656854152679443
;
assertEquals
(
expectedLength
,
arcLength
);
assertEquals
(
5.656854152679443
,
arcLength
);
}
public
void
testBilateralFilterMatMatIntDoubleDouble
()
{
Imgproc
.
bilateralFilter
(
gray255
,
dst
,
5
,
10.0
,
5.0
);
Imgproc
.
bilateralFilter
(
gray255
,
dst
,
5
,
10
,
5
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testBilateralFilterMatMatIntDoubleDoubleInt
()
{
Imgproc
.
bilateralFilter
(
gray255
,
dst
,
5
,
10.0
,
5.0
,
Imgproc
.
BORDER_REFLECT
);
Imgproc
.
bilateralFilter
(
gray255
,
dst
,
5
,
10
,
5
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testBlurMatMatSize
()
{
...
...
@@ -153,34 +195,36 @@ public class ImgprocTest extends OpenCVTestCase {
Imgproc
.
blur
(
gray255
,
dst
,
size
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testBlurMatMatSizePoint
()
{
Imgproc
.
blur
(
gray0
,
dst
,
size
,
anchorPoint
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testBlurMatMatSizePointInt
()
{
Imgproc
.
blur
(
gray0
,
dst
,
size
,
anchorPoint
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testBorderInterpolate
()
{
float
val1
=
Imgproc
.
borderInterpolate
(
100
,
150
,
Imgproc
.
BORDER_REFLECT_101
);
assertEquals
(
100
.0
f
,
val1
);
assertEquals
(
100
f
,
val1
);
float
val2
=
Imgproc
.
borderInterpolate
(-
5
,
10
,
Imgproc
.
BORDER_WRAP
);
assertEquals
(
5
.0
f
,
val2
);
assertEquals
(
5
f
,
val2
);
}
public
void
testBoundingRect
()
{
Mat
points
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
0.0
,
0.0
,
0.0
,
4.0
,
4.0
,
0.0
,
4.0
,
4.0
);
List
<
Point
>
points
=
Arrays
.
asList
(
new
Point
(
0
,
0
),
new
Point
(
0
,
4
),
new
Point
(
4
,
0
),
new
Point
(
4
,
4
));
Point
p1
=
new
Point
(
1
,
1
);
Point
p2
=
new
Point
(-
5
,
-
2
);
Rect
bbox
=
Imgproc
.
boundingRect
(
points
);
assertTrue
(
bbox
.
contains
(
p1
));
assertFalse
(
bbox
.
contains
(
p2
));
}
...
...
@@ -189,246 +233,234 @@ public class ImgprocTest extends OpenCVTestCase {
Size
size
=
new
Size
(
3
,
3
);
Imgproc
.
boxFilter
(
gray0
,
dst
,
8
,
size
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testBoxFilterMatMatIntSizePoint
()
{
Imgproc
.
boxFilter
(
gray0
,
dst
,
8
,
size
,
anchorPoint
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testBoxFilterMatMatIntSizePointBoolean
()
{
Imgproc
.
boxFilter
(
gray255
,
dst
,
8
,
size
,
anchorPoint
,
false
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testBoxFilterMatMatIntSizePointBooleanInt
()
{
Imgproc
.
boxFilter
(
gray255
,
dst
,
8
,
size
,
anchorPoint
,
false
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testCalcBackProject
()
{
ArrayList
<
Mat
>
images
=
new
ArrayList
<
Mat
>();
List
<
Integer
>
channels
=
new
ArrayList
<
Integer
>();
List
<
Integer
>
histSize
=
new
ArrayList
<
Integer
>();
List
<
Float
>
ranges
=
new
ArrayList
<
Float
>();
images
.
add
(
grayChess
);
channels
.
add
(
0
);
histSize
.
add
(
10
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
List
<
Mat
>
images
=
Arrays
.
asList
(
grayChess
);
List
<
Integer
>
channels
=
Arrays
.
asList
(
0
);
List
<
Integer
>
histSize
=
Arrays
.
asList
(
10
);
List
<
Float
>
ranges
=
Arrays
.
asList
(
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
Core
.
normalize
(
hist
,
hist
);
Imgproc
.
calcBackProject
(
images
,
channels
,
hist
,
dst
,
ranges
,
255
);
assertTrue
(
grayChess
.
size
().
equals
(
dst
.
size
()));
assertEquals
(
grayChess
.
size
(),
dst
.
size
());
assertEquals
(
grayChess
.
depth
(),
dst
.
depth
());
assert
True
(
0
!
=
Core
.
countNonZero
(
dst
));
assert
False
(
0
=
=
Core
.
countNonZero
(
dst
));
}
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloat
()
{
ArrayList
<
Mat
>
images
=
new
ArrayList
<
Mat
>();
List
<
Integer
>
channels
=
new
ArrayList
<
Integer
>();
List
<
Integer
>
histSize
=
new
ArrayList
<
Integer
>();
List
<
Float
>
ranges
=
new
ArrayList
<
Float
>();
images
.
add
(
gray128
);
channels
.
add
(
0
);
histSize
.
add
(
10
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
truth
=
new
Mat
(
10
,
1
,
CvType
.
CV_32F
,
Scalar
.
all
(
0.0
));
truth
.
put
(
5
,
0
,
100.0
);
List
<
Mat
>
images
=
Arrays
.
asList
(
gray128
);
List
<
Integer
>
channels
=
Arrays
.
asList
(
0
);
List
<
Integer
>
histSize
=
Arrays
.
asList
(
10
);
List
<
Float
>
ranges
=
Arrays
.
asList
(
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
truth
=
new
Mat
(
10
,
1
,
CvType
.
CV_32F
,
Scalar
.
all
(
0
))
{
{
put
(
5
,
0
,
100
);
}
};
assertMatEqual
(
truth
,
hist
,
EPS
);
}
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloat2d
()
{
ArrayList
<
Mat
>
images
=
new
ArrayList
<
Mat
>();
List
<
Integer
>
channels
=
new
ArrayList
<
Integer
>();
List
<
Integer
>
histSize
=
new
ArrayList
<
Integer
>();
List
<
Float
>
ranges
=
new
ArrayList
<
Float
>();
images
.
add
(
gray255
);
images
.
add
(
gray128
);
channels
.
add
(
0
);
channels
.
add
(
1
);
histSize
.
add
(
10
);
histSize
.
add
(
10
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
Scalar
.
all
(
0.0
));
truth
.
put
(
9
,
5
,
100.0
);
List
<
Mat
>
images
=
Arrays
.
asList
(
gray255
,
gray128
);
List
<
Integer
>
channels
=
Arrays
.
asList
(
0
,
1
);
List
<
Integer
>
histSize
=
Arrays
.
asList
(
10
,
10
);
List
<
Float
>
ranges
=
Arrays
.
asList
(
0
f
,
256
f
,
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
Scalar
.
all
(
0
))
{
{
put
(
9
,
5
,
100
);
}
};
assertMatEqual
(
truth
,
hist
,
EPS
);
}
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloatBoolean
()
{
ArrayList
<
Mat
>
images
=
new
ArrayList
<
Mat
>(
);
List
<
Integer
>
channels
=
new
ArrayList
<
Integer
>(
);
List
<
Integer
>
histSize
=
new
ArrayList
<
Integer
>(
);
List
<
Float
>
ranges
=
new
ArrayList
<
Float
>(
);
List
<
Mat
>
images
=
Arrays
.
asList
(
gray255
,
gray128
);
List
<
Integer
>
channels
=
Arrays
.
asList
(
0
,
1
);
List
<
Integer
>
histSize
=
Arrays
.
asList
(
10
,
10
);
List
<
Float
>
ranges
=
Arrays
.
asList
(
0
f
,
256
f
,
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
images
.
add
(
gray255
);
images
.
add
(
gray128
);
channels
.
add
(
0
);
channels
.
add
(
1
);
histSize
.
add
(
10
);
histSize
.
add
(
10
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
ranges
.
add
(
0.0f
);
ranges
.
add
(
256.0f
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
Scalar
.
all
(
0.0
));
truth
.
put
(
9
,
5
,
100.0
);
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
,
true
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
Scalar
.
all
(
0
))
{
{
put
(
9
,
5
,
100
);
}
};
assertMatEqual
(
truth
,
hist
,
EPS
);
}
public
void
testCannyMatMatDoubleDouble
()
{
Imgproc
.
Canny
(
gray255
,
dst
,
5
.0
,
10.
0
);
Imgproc
.
Canny
(
gray255
,
dst
,
5
,
1
0
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testCannyMatMatDoubleDoubleInt
()
{
Imgproc
.
Canny
(
gray255
,
dst
,
5
.0
,
10.
0
,
5
);
Imgproc
.
Canny
(
gray255
,
dst
,
5
,
1
0
,
5
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testCannyMatMatDoubleDoubleIntBoolean
()
{
Imgproc
.
Canny
(
gray0
,
dst
,
5
.0
,
10.
0
,
5
,
true
);
Imgproc
.
Canny
(
gray0
,
dst
,
5
,
1
0
,
5
,
true
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testCompareHist
()
{
Mat
H1
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
Mat
H2
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
H1
.
put
(
0
,
0
,
1
,
2
,
3
);
H2
.
put
(
0
,
0
,
4
,
5
,
6
);
double
comparator
=
Imgproc
.
compareHist
(
H1
,
H2
,
Imgproc
.
CV_COMP_CORREL
);
assertEquals
(
1.0
,
comparator
);
double
distance
=
Imgproc
.
compareHist
(
H1
,
H2
,
Imgproc
.
CV_COMP_CORREL
);
assertEquals
(
1
.,
distance
);
}
public
void
testContourAreaMat
()
{
Mat
contour
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
contour
.
put
(
0
,
0
,
0
.0
,
0.0
,
10.0
,
0.0
,
10.0
,
10.0
,
5.0
,
4.0
);
contour
.
put
(
0
,
0
,
0
,
0
,
10
,
0
,
10
,
10
,
5
,
4
);
double
area
=
Imgproc
.
contourArea
(
contour
);
assertEquals
(
45.0
,
area
);
assertEquals
(
45
.,
area
);
}
public
void
testContourAreaMatBoolean
()
{
Mat
contour
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
contour
.
put
(
0
,
0
,
0
.0
,
0.0
,
10.0
,
0.0
,
10.0
,
10.0
,
5.0
,
4.0
);
contour
.
put
(
0
,
0
,
0
,
0
,
10
,
0
,
10
,
10
,
5
,
4
);
double
area
=
Imgproc
.
contourArea
(
contour
,
true
);
assertEquals
(
45.0
,
area
);
assertEquals
(
45
.,
area
);
// TODO_: write better test
}
public
void
testConvertMapsMatMatMatMatInt
()
{
Mat
map1
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC1
,
new
Scalar
(
1
.0
));
Mat
map2
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
.0
));
Mat
map1
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC1
,
new
Scalar
(
1
));
Mat
map2
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
));
Mat
dstmap1
=
new
Mat
(
1
,
4
,
CvType
.
CV_16SC2
);
Mat
dstmap2
=
new
Mat
(
1
,
4
,
CvType
.
CV_16UC1
);
Imgproc
.
convertMaps
(
map1
,
map2
,
dstmap1
,
dstmap2
,
CvType
.
CV_16SC2
);
Mat
truthMap1
=
new
Mat
(
1
,
4
,
CvType
.
CV_16SC2
);
truthMap1
.
put
(
0
,
0
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
);
assertMatEqual
(
truthMap1
,
dstmap1
);
Mat
truthMap2
=
new
Mat
(
1
,
4
,
CvType
.
CV_16UC1
,
new
Scalar
(
0
));
assertMatEqual
(
truthMap2
,
dstmap2
);
}
public
void
testConvertMapsMatMatMatMatIntBoolean
()
{
Mat
map1
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
.0
));
Mat
map2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
4
.0
));
Mat
map1
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
));
Mat
map2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
4
));
Mat
dstmap1
=
new
Mat
(
1
,
3
,
CvType
.
CV_16SC2
);
Mat
dstmap2
=
new
Mat
(
1
,
3
,
CvType
.
CV_16UC1
);
Imgproc
.
convertMaps
(
map1
,
map2
,
dstmap1
,
dstmap2
,
CvType
.
CV_16SC2
,
false
);
// TODO_: write better test (last param == true)
Mat
truthMap1
=
new
Mat
(
1
,
3
,
CvType
.
CV_16SC2
);
truthMap1
.
put
(
0
,
0
,
2
,
4
,
2
,
4
,
2
,
4
);
assertMatEqual
(
truthMap1
,
dstmap1
);
Mat
truthMap2
=
new
Mat
(
1
,
3
,
CvType
.
CV_16UC1
,
new
Scalar
(
0
));
assertMatEqual
(
truthMap2
,
dstmap2
);
}
public
void
testConvexHullMatMat
()
{
Mat
points
=
new
Mat
(
1
,
6
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
2.0
,
0.0
,
4.0
,
0.0
,
3.0
,
2.0
,
0.0
,
2.0
,
2.0
,
1.0
,
3.0
,
1.0
);
points
.
put
(
0
,
0
,
2
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
1
,
3
,
1
);
Imgproc
.
convexHull
(
points
,
dst
);
Mat
expHull
=
new
Mat
(
4
,
1
,
CvType
.
CV_32FC2
);
expHull
.
put
(
0
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
0
);
Imgproc
.
convexHull
(
points
,
dst
);
assertMatEqual
(
expHull
,
dst
,
EPS
);
}
public
void
testConvexHullMatMatBoolean
()
{
Mat
points
=
new
Mat
(
1
,
6
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
2.0
,
0.0
,
4.0
,
0.0
,
3.0
,
2.0
,
0.0
,
2.0
,
2.0
,
1.0
,
3.0
,
1.0
);
points
.
put
(
0
,
0
,
2
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
1
,
3
,
1
);
Imgproc
.
convexHull
(
points
,
dst
,
true
);
Mat
expHull
=
new
Mat
(
4
,
1
,
CvType
.
CV_32FC2
);
expHull
.
put
(
0
,
0
,
0
,
2
,
3
,
2
,
4
,
0
,
2
,
0
);
Imgproc
.
convexHull
(
points
,
dst
,
true
);
assertMatEqual
(
expHull
,
dst
,
EPS
);
}
public
void
testConvexHullMatMatBooleanBoolean
()
{
Mat
points
=
new
Mat
(
1
,
6
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
2.0
,
0.0
,
4.0
,
0.0
,
3.0
,
2.0
,
0.0
,
2.0
,
2.0
,
1.0
,
3.0
,
1.0
);
points
.
put
(
0
,
0
,
2
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
1
,
3
,
1
);
Imgproc
.
convexHull
(
points
,
dst
,
true
,
true
);
// TODO_: write better test (last param == false)
Mat
expHull
=
new
Mat
(
4
,
1
,
CvType
.
CV_32FC2
);
expHull
.
put
(
0
,
0
,
0
,
2
,
3
,
2
,
4
,
0
,
2
,
0
);
Imgproc
.
convexHull
(
points
,
dst
,
true
,
true
);
assertMatEqual
(
expHull
,
dst
,
EPS
);
}
public
void
testCopyMakeBorderMatMatIntIntIntIntInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
truth
=
new
Mat
(
6
,
6
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
int
border
=
2
;
Imgproc
.
copyMakeBorder
(
src
,
dst
,
border
,
border
,
border
,
border
,
Imgproc
.
BORDER_REPLICATE
);
truth
=
new
Mat
(
6
,
6
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testCopyMakeBorderMatMatIntIntIntIntIntScalar
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
.0
));
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
truth
=
new
Mat
(
6
,
6
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
Scalar
value
=
new
Scalar
(
0
);
int
border
=
2
;
Imgproc
.
copyMakeBorder
(
src
,
dst
,
border
,
border
,
border
,
border
,
Imgproc
.
BORDER_REPLICATE
,
value
);
// TODO_: write better test (use Imgproc.BORDER_CONSTANT)
truth
=
new
Mat
(
6
,
6
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testCornerEigenValsAndVecsMatMatIntInt
()
{
fail
(
"Not yet implemented"
);
// TODO: write better test
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
);
src
.
put
(
0
,
0
,
1
,
2
);
src
.
put
(
1
,
0
,
4
,
2
);
...
...
@@ -443,6 +475,8 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testCornerEigenValsAndVecsMatMatIntIntInt
()
{
fail
(
"Not yet implemented"
);
// TODO: write better test
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32FC1
,
new
Scalar
(
128
));
int
blockSize
=
3
;
...
...
@@ -455,6 +489,9 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testCornerHarrisMatMatIntIntDouble
()
{
fail
(
"Not yet implemented"
);
// TODO: write better test
truth
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_32FC1
,
new
Scalar
(
0
));
int
blockSize
=
5
;
int
ksize
=
7
;
...
...
@@ -464,6 +501,9 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testCornerHarrisMatMatIntIntDoubleInt
()
{
fail
(
"Not yet implemented"
);
// TODO: write better test
truth
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_32FC1
,
new
Scalar
(
0
));
int
blockSize
=
5
;
int
ksize
=
7
;
...
...
@@ -473,6 +513,9 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testCornerMinEigenValMatMatInt
()
{
fail
(
"Not yet implemented"
);
// TODO: write better test
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
);
src
.
put
(
0
,
0
,
1
,
2
);
src
.
put
(
1
,
0
,
2
,
1
);
...
...
@@ -496,10 +539,13 @@ public class ImgprocTest extends OpenCVTestCase {
Imgproc
.
cornerMinEigenVal
(
src
,
dst
,
blockSize
,
ksize
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
0
));
truth
.
put
(
0
,
0
,
0.055555549
,
0.027777772
,
0.055555549
);
truth
.
put
(
1
,
0
,
0.027777772
,
0.055555549
,
0.027777772
);
truth
.
put
(
2
,
0
,
0.055555549
,
0.027777772
,
0.055555549
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32FC1
)
{
{
put
(
0
,
0
,
1
.
/
18
,
1
.
/
36
,
1
.
/
18
);
put
(
1
,
0
,
1
.
/
36
,
1
.
/
18
,
1
.
/
36
);
put
(
2
,
0
,
1
.
/
18
,
1
.
/
36
,
1
.
/
18
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
...
...
@@ -510,132 +556,108 @@ public class ImgprocTest extends OpenCVTestCase {
Imgproc
.
cornerMinEigenVal
(
src
,
dst
,
blockSize
,
ksize
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32FC1
,
new
Scalar
(
0
));
truth
.
put
(
0
,
0
,
0.68055558
,
0.92708349
,
0.5868057
);
truth
.
put
(
1
,
0
,
0.92708343
,
0.92708343
,
0.92708343
);
truth
.
put
(
2
,
0
,
0.58680564
,
0.92708343
,
0.68055564
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32FC1
)
{
{
put
(
0
,
0
,
0.68055558
,
0.92708349
,
0.5868057
);
put
(
1
,
0
,
0.92708343
,
0.92708343
,
0.92708343
);
put
(
2
,
0
,
0.58680564
,
0.92708343
,
0.68055564
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testCornerSubPix
()
{
Mat
img
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Point
truthPosition
=
new
Point
(
img
.
cols
()
/
2
,
img
.
rows
()
/
2
);
Rect
r
=
new
Rect
(
new
Point
(
0
,
0
),
truthPosition
);
Core
.
rectangle
(
img
,
r
.
tl
(),
r
.
br
(),
new
Scalar
(
0
),
-
1
/* TODO: CV_FILLED */
);
Core
.
rectangle
(
img
,
r
.
tl
(),
r
.
br
(),
new
Scalar
(
0
),
Core
.
FILLED
);
List
<
Point
>
corners
=
new
ArrayList
<
Point
>();
corners
.
add
(
new
Point
(
truthPosition
.
x
+
1
,
truthPosition
.
y
+
1
));
Size
winSize
=
new
Size
(
2
,
2
);
Size
zeroZone
=
new
Size
(-
1
,
-
1
);
TermCriteria
criteria
=
new
TermCriteria
(
2
/* TODO: CV_TERMCRIT_EPS */
,
0
,
0.01
);
TermCriteria
criteria
=
new
TermCriteria
(
TermCriteria
.
EPS
,
0
,
0.01
);
Imgproc
.
cornerSubPix
(
img
,
corners
,
winSize
,
zeroZone
,
criteria
);
assertPointEquals
(
truthPosition
,
corners
.
get
(
0
),
weakEPS
);
}
public
void
testCvtColorMatMatInt
()
{
Imgproc
.
cvtColor
(
rgba0
,
dst
,
2
);
assertMatEqual
(
rgba0
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testCvtColorMatMatIntInt
()
{
Imgproc
.
cvtColor
(
rgba128
,
dst
,
2
,
1
);
assertMatEqual
(
rgba128
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testDilateMatMatMat
()
{
Mat
kernel
=
new
Mat
();
Imgproc
.
dilate
(
gray255
,
dst
,
kernel
);
assertMatEqual
(
gray255
,
dst
);
Imgproc
.
dilate
(
gray1
,
dst
,
kernel
);
assertMatEqual
(
gray1
,
dst
);
// TODO_: write better test
}
public
void
testDilateMatMatMatPoint
()
{
Mat
kernel
=
new
Mat
();
Imgproc
.
dilate
(
gray255
,
dst
,
kernel
,
anchorPoint
);
assertMatEqual
(
gray255
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testDilateMatMatMatPointInt
()
{
Mat
kernel
=
new
Mat
();
Imgproc
.
dilate
(
gray255
,
dst
,
kernel
,
anchorPoint
,
10
);
assertMatEqual
(
gray255
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testDilateMatMatMatPointIntInt
()
{
Mat
kernel
=
new
Mat
();
Imgproc
.
dilate
(
gray255
,
dst
,
kernel
,
anchorPoint
,
10
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
gray255
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testDilateMatMatMatPointIntIntScalar
()
{
Mat
kernel
=
new
Mat
();
Scalar
value
=
new
Scalar
(
0
);
Imgproc
.
dilate
(
gray255
,
dst
,
kernel
,
anchorPoint
,
10
,
Imgproc
.
BORDER_REFLECT
,
value
);
assertMatEqual
(
gray255
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testDistanceTransform
()
{
truth
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_32FC1
,
new
Scalar
(
8192
));
Mat
dstLables
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_32SC1
,
new
Scalar
(
0
));
Mat
dstLables
=
getMat
(
CvType
.
CV_32SC1
,
0
);
Mat
labels
=
new
Mat
();
Imgproc
.
distanceTransform
(
gray128
,
dst
,
labels
,
Imgproc
.
CV_DIST_L2
,
3
);
assertMatEqual
(
truth
,
dst
,
EPS
);
assertMatEqual
(
dstLables
,
labels
);
assertMatEqual
(
getMat
(
CvType
.
CV_32FC1
,
8192
),
dst
,
EPS
);
}
public
void
testDrawContoursMatListOfMatIntScalar
()
{
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>(
5
);
Mat
hierarchy
=
dst
;
Core
.
rectangle
(
gray0
,
new
Point
(
1
,
2
),
new
Point
(
7
,
8
),
new
Scalar
(
100
));
Imgproc
.
findContours
(
gray0
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
assertTrue
(
1
==
contours
.
size
());
assertFalse
(
0
==
Core
.
countNonZero
(
gray0
));
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>();
Imgproc
.
findContours
(
gray0
,
contours
,
new
Mat
(),
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
Imgproc
.
drawContours
(
gray0
,
contours
,
-
1
,
new
Scalar
(
0
));
assert
True
(
0
==
Core
.
countNonZero
(
gray0
));
assert
Equals
(
0
,
Core
.
countNonZero
(
gray0
));
}
public
void
testDrawContoursMatListOfMatIntScalarInt
()
{
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>(
5
);
Mat
hierarchy
=
dst
;
Core
.
rectangle
(
gray0
,
new
Point
(
1
,
2
),
new
Point
(
7
,
8
),
new
Scalar
(
100
));
Imgproc
.
findContours
(
gray0
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
assertTrue
(
1
==
contours
.
size
());
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>();
Imgproc
.
findContours
(
gray0
,
contours
,
new
Mat
(),
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
Imgproc
.
drawContours
(
gray0
,
contours
,
-
1
,
new
Scalar
(
0
),
Core
.
FILLED
);
assertFalse
(
0
==
Core
.
countNonZero
(
gray0
));
Imgproc
.
drawContours
(
gray0
,
contours
,
-
1
,
new
Scalar
(
0
),
-
1
);
//TODO: CV_FILLED
assertTrue
(
0
==
Core
.
countNonZero
(
gray0
));
assertEquals
(
0
,
Core
.
countNonZero
(
gray0
));
}
public
void
testDrawContoursMatListOfMatIntScalarIntInt
()
{
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>(
5
);
Mat
hierarchy
=
dst
;
int
linetype
=
8
;
//TODO: line type constant
Core
.
rectangle
(
gray0
,
new
Point
(
1
,
2
),
new
Point
(
7
,
8
),
new
Scalar
(
100
));
Imgproc
.
findContours
(
gray0
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
assertTrue
(
1
==
contours
.
size
());
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>();
Imgproc
.
findContours
(
gray0
,
contours
,
new
Mat
(),
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
Imgproc
.
drawContours
(
gray0
,
contours
,
-
1
,
new
Scalar
(
0
),
Core
.
FILLED
,
Core
.
LINE_8
);
assertFalse
(
0
==
Core
.
countNonZero
(
gray0
));
Imgproc
.
drawContours
(
gray0
,
contours
,
-
1
,
new
Scalar
(
0
),
-
1
,
linetype
);
//TODO: CV_FILLED
assertTrue
(
0
==
Core
.
countNonZero
(
gray0
));
assertEquals
(
0
,
Core
.
countNonZero
(
gray0
));
}
public
void
testDrawContoursMatListOfMatIntScalarIntIntMat
()
{
...
...
@@ -656,6 +678,7 @@ public class ImgprocTest extends OpenCVTestCase {
Imgproc
.
equalizeHist
(
gray255
,
dst
);
assertMatEqual
(
gray255
,
dst
);
// TODO_: write better test
}
public
void
testErodeMatMatMat
()
{
...
...
@@ -667,74 +690,89 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testErodeMatMatMatPoint
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
);
src
.
put
(
0
,
0
,
1
,
4
,
8
);
src
.
put
(
1
,
0
,
2
,
0
,
1
);
src
.
put
(
2
,
0
,
3
,
4
,
6
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
1
,
4
,
8
);
put
(
1
,
0
,
2
,
0
,
1
);
put
(
2
,
0
,
3
,
4
,
6
);
}
};
Mat
kernel
=
new
Mat
();
Imgproc
.
erode
(
src
,
dst
,
kernel
,
anchorPoint
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
0
.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testErodeMatMatMatPointInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
);
src
.
put
(
0
,
0
,
15
,
9
,
10
);
src
.
put
(
1
,
0
,
10
,
8
,
12
);
src
.
put
(
2
,
0
,
12
,
20
,
25
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
15
,
9
,
10
);
put
(
1
,
0
,
10
,
8
,
12
);
put
(
2
,
0
,
12
,
20
,
25
);
}
};
Mat
kernel
=
new
Mat
();
Imgproc
.
erode
(
src
,
dst
,
kernel
,
anchorPoint
,
10
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testErodeMatMatMatPointIntInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
);
src
.
put
(
0
,
0
,
15
,
9
,
10
);
src
.
put
(
1
,
0
,
10
,
8
,
12
);
src
.
put
(
2
,
0
,
12
,
20
,
25
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
15
,
9
,
10
);
put
(
1
,
0
,
10
,
8
,
12
);
put
(
2
,
0
,
12
,
20
,
25
);
}
};
Mat
kernel
=
new
Mat
();
Imgproc
.
erode
(
src
,
dst
,
kernel
,
anchorPoint
,
10
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testErodeMatMatMatPointIntIntScalar
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
);
src
.
put
(
0
,
0
,
15
,
9
,
10
);
src
.
put
(
1
,
0
,
10
,
8
,
12
);
src
.
put
(
2
,
0
,
12
,
20
,
25
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
15
,
9
,
10
);
put
(
1
,
0
,
10
,
8
,
12
);
put
(
2
,
0
,
12
,
20
,
25
);
}
};
Mat
kernel
=
new
Mat
();
Scalar
sc
=
new
Scalar
(
3
,
3
);
Imgproc
.
erode
(
src
,
dst
,
kernel
,
anchorPoint
,
10
,
Imgproc
.
BORDER_REFLECT
,
sc
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
8
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testFilter2DMatMatIntMat
()
{
Mat
src
=
Mat
.
eye
(
4
,
4
,
CvType
.
CV_32F
);
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
.0
));
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
Imgproc
.
filter2D
(
src
,
dst
,
-
1
,
kernel
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2
,
2
,
1
,
0
);
truth
.
put
(
1
,
0
,
2
,
2
,
1
,
0
);
truth
.
put
(
2
,
0
,
1
,
1
,
2
,
1
);
truth
.
put
(
3
,
0
,
0
,
0
,
1
,
2
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
2
,
1
,
0
);
put
(
1
,
0
,
2
,
2
,
1
,
0
);
put
(
2
,
0
,
1
,
1
,
2
,
1
);
put
(
3
,
0
,
0
,
0
,
1
,
2
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testFilter2DMatMatIntMatPoint
()
{
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
.0
));
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
Point
point
=
new
Point
(
0
,
0
);
Imgproc
.
filter2D
(
gray128
,
dst
,
-
1
,
kernel
,
point
);
...
...
@@ -747,10 +785,10 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testFilter2DMatMatIntMatPointDoubleInt
()
{
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
.0
));
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
Point
point
=
new
Point
(
0
,
0
);
Imgproc
.
filter2D
(
gray128
,
dst
,
-
1
,
kernel
,
point
,
2
.0
,
Imgproc
.
BORDER_CONSTANT
);
Imgproc
.
filter2D
(
gray128
,
dst
,
-
1
,
kernel
,
point
,
2
,
Imgproc
.
BORDER_CONSTANT
);
assertMatEqual
(
gray2
,
dst
);
}
...
...
@@ -758,7 +796,7 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testFindContoursMatListOfMatMatIntInt
()
{
Mat
img
=
new
Mat
(
50
,
50
,
CvType
.
CV_8UC1
,
new
Scalar
(
0
));
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>(
5
);
Mat
hierarchy
=
dst
;
Mat
hierarchy
=
new
Mat
()
;
Imgproc
.
findContours
(
img
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
...
...
@@ -766,7 +804,7 @@ public class ImgprocTest extends OpenCVTestCase {
assertEquals
(
contours
.
size
(),
0
);
assertEquals
(
contours
.
size
(),
hierarchy
.
total
());
Core
.
rectangle
(
img
,
new
Point
(
10
,
20
),
new
Point
(
20
,
30
),
new
Scalar
(
100
),
3
,
16
/* CV_AA */
);
Core
.
rectangle
(
img
,
new
Point
(
10
,
20
),
new
Point
(
20
,
30
),
new
Scalar
(
100
),
3
,
Core
.
LINE_AA
);
Core
.
rectangle
(
img
,
new
Point
(
30
,
35
),
new
Point
(
40
,
45
),
new
Scalar
(
200
));
Imgproc
.
findContours
(
img
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
...
...
@@ -781,38 +819,31 @@ public class ImgprocTest extends OpenCVTestCase {
Mat
img2
=
img
.
submat
(
5
,
50
,
3
,
50
);
List
<
Mat
>
contours
=
new
ArrayList
<
Mat
>();
List
<
Mat
>
contours2
=
new
ArrayList
<
Mat
>();
Mat
hierarchy
=
dst
;
Core
.
rectangle
(
img
,
new
Point
(
10
,
20
),
new
Point
(
20
,
30
),
new
Scalar
(
100
),
3
,
16
/* CV_AA */
);
Core
.
rectangle
(
img
,
new
Point
(
10
,
20
),
new
Point
(
20
,
30
),
new
Scalar
(
100
),
3
,
Core
.
LINE_AA
);
Core
.
rectangle
(
img
,
new
Point
(
30
,
35
),
new
Point
(
40
,
45
),
new
Scalar
(
200
));
Imgproc
.
findContours
(
img
,
contours
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
Imgproc
.
findContours
(
img2
,
contours2
,
hierarchy
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
,
new
Point
(
3
,
5
));
Imgproc
.
findContours
(
img
,
contours
,
new
Mat
()
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
);
Imgproc
.
findContours
(
img2
,
contours2
,
new
Mat
()
,
Imgproc
.
RETR_EXTERNAL
,
Imgproc
.
CHAIN_APPROX_SIMPLE
,
new
Point
(
3
,
5
));
assertEquals
(
contours
.
size
(),
contours2
.
size
());
assertMatEqual
(
contours
.
get
(
0
),
contours2
.
get
(
0
));
}
public
void
testFitEllipse
()
{
List
<
Point
>
points
=
new
ArrayList
<
Point
>();
points
.
add
(
new
Point
(
0
,
0
));
points
.
add
(
new
Point
(-
1
,
1
));
points
.
add
(
new
Point
(
1
,
1
));
points
.
add
(
new
Point
(
1
,
-
1
));
points
.
add
(
new
Point
(-
1
,
-
1
));
List
<
Point
>
points
=
Arrays
.
asList
(
new
Point
(
0
,
0
),
new
Point
(-
1
,
1
),
new
Point
(
1
,
1
),
new
Point
(
1
,
-
1
),
new
Point
(-
1
,
-
1
));
RotatedRect
rrect
=
new
RotatedRect
();
rrect
=
Imgproc
.
fitEllipse
(
points
);
assertEquals
(
0.0
,
rrect
.
center
.
x
);
assertEquals
(
0.0
,
rrect
.
center
.
y
);
assertPointEquals
(
new
Point
(
0
,
0
),
rrect
.
center
,
EPS
);
assertEquals
(
2.53
,
rrect
.
size
.
width
,
EPS
);
assertEquals
(
2.53
,
rrect
.
size
.
height
,
EPS
);
}
public
void
testFitLine
()
{
Mat
points
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
0
.0
,
0.0
,
2.0
,
3.0
,
3.0
,
4.0
,
5.0
,
8.0
);
points
.
put
(
0
,
0
,
0
,
0
,
2
,
3
,
3
,
4
,
5
,
8
);
Mat
linePoints
=
new
Mat
(
4
,
1
,
CvType
.
CV_32FC1
);
linePoints
.
put
(
0
,
0
,
0.53196341
,
0.84676737
,
2.496531
,
3.7467217
);
...
...
@@ -843,7 +874,6 @@ public class ImgprocTest extends OpenCVTestCase {
int
retval
=
Imgproc
.
floodFill
(
img
,
new
Mat
(),
new
Point
(
matSize
/
2
,
matSize
/
2
),
new
Scalar
(
1
));
Core
.
circle
(
img
,
new
Point
(
matSize
/
2
,
matSize
/
2
),
3
,
new
Scalar
(
0
));
assertEquals
(
Core
.
countNonZero
(
img
),
retval
);
}
...
...
@@ -864,41 +894,40 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testGaussianBlurMatMatSizeDouble
()
{
Imgproc
.
GaussianBlur
(
gray0
,
dst
,
size
,
1
.0
);
Imgproc
.
GaussianBlur
(
gray0
,
dst
,
size
,
1
);
assertMatEqual
(
gray0
,
dst
);
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
1
.0
);
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
1
);
assertMatEqual
(
gray2
,
dst
);
}
public
void
testGaussianBlurMatMatSizeDoubleDouble
()
{
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
0
.0
,
0.
0
);
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
0
,
0
);
assertMatEqual
(
gray2
,
dst
);
// TODO_: write better test
}
public
void
testGaussianBlurMatMatSizeDoubleDoubleInt
()
{
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
1
.0
,
3.0
,
Imgproc
.
BORDER_REFLECT
);
Imgproc
.
GaussianBlur
(
gray2
,
dst
,
size
,
1
,
3
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
gray2
,
dst
);
// TODO_: write better test
}
public
void
testGetAffineTransform
()
{
Mat
src
=
new
Mat
(
3
,
2
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
3
);
src
.
put
(
1
,
0
,
3
,
1
);
src
.
put
(
2
,
0
,
1
,
4
);
Mat
dstPoints
=
new
Mat
(
3
,
2
,
CvType
.
CV_32F
);
dstPoints
.
put
(
0
,
0
,
3
,
3
);
dstPoints
.
put
(
1
,
0
,
7
,
4
);
dstPoints
.
put
(
2
,
0
,
5
,
6
);
dst
=
Imgproc
.
getAffineTransform
(
src
,
dstPoints
);
Mat
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64FC1
);
truth
.
put
(
0
,
0
,
-
8
,
-
6
,
37
);
truth
.
put
(
1
,
0
,
-
7
,
-
4
,
29
);
assertMatEqual
(
truth
,
dst
,
EPS
);
List
<
Point
>
src
=
Arrays
.
asList
(
new
Point
(
2
,
3
),
new
Point
(
3
,
1
),
new
Point
(
1
,
4
));
List
<
Point
>
dst
=
Arrays
.
asList
(
new
Point
(
3
,
3
),
new
Point
(
7
,
4
),
new
Point
(
5
,
6
));
Mat
transform
=
Imgproc
.
getAffineTransform
(
src
,
dst
);
Mat
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64FC1
)
{
{
put
(
0
,
0
,
-
8
,
-
6
,
37
);
put
(
1
,
0
,
-
7
,
-
4
,
29
);
}
};
assertMatEqual
(
truth
,
transform
,
EPS
);
}
public
void
testGetDefaultNewCameraMatrixMat
()
{
...
...
@@ -913,6 +942,7 @@ public class ImgprocTest extends OpenCVTestCase {
assertFalse
(
mtx
.
empty
());
assertEquals
(
0
,
Core
.
countNonZero
(
mtx
));
// TODO_: write better test
}
public
void
testGetDefaultNewCameraMatrixMatSizeBoolean
()
{
...
...
@@ -920,6 +950,7 @@ public class ImgprocTest extends OpenCVTestCase {
assertFalse
(
mtx
.
empty
());
assertFalse
(
0
==
Core
.
countNonZero
(
mtx
));
// TODO_: write better test
}
public
void
testGetDerivKernelsMatMatIntIntInt
()
{
...
...
@@ -927,17 +958,15 @@ public class ImgprocTest extends OpenCVTestCase {
Mat
ky
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
Mat
expKx
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
Mat
expKy
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
kx
.
put
(
0
,
0
,
1
,
1
);
kx
.
put
(
1
,
0
,
1
,
1
);
ky
.
put
(
0
,
0
,
2
,
2
);
ky
.
put
(
1
,
0
,
2
,
2
);
expKx
.
put
(
0
,
0
,
1
,
-
2
,
1
);
expKy
.
put
(
0
,
0
,
1
,
-
2
,
1
);
Imgproc
.
getDerivKernels
(
kx
,
ky
,
2
,
2
,
3
);
assertMatEqual
(
expKx
,
kx
,
EPS
);
assertMatEqual
(
expKy
,
ky
,
EPS
);
}
...
...
@@ -947,19 +976,18 @@ public class ImgprocTest extends OpenCVTestCase {
Mat
ky
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
Mat
expKx
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
Mat
expKy
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
kx
.
put
(
0
,
0
,
1
,
1
);
kx
.
put
(
1
,
0
,
1
,
1
);
ky
.
put
(
0
,
0
,
2
,
2
);
ky
.
put
(
1
,
0
,
2
,
2
);
expKx
.
put
(
0
,
0
,
1
,
-
2
,
1
);
expKy
.
put
(
0
,
0
,
1
,
-
2
,
1
);
Imgproc
.
getDerivKernels
(
kx
,
ky
,
2
,
2
,
3
,
true
);
assertMatEqual
(
expKx
,
kx
,
EPS
);
assertMatEqual
(
expKy
,
ky
,
EPS
);
// TODO_: write better test
}
public
void
testGetDerivKernelsMatMatIntIntIntBooleanInt
()
{
...
...
@@ -967,35 +995,32 @@ public class ImgprocTest extends OpenCVTestCase {
Mat
ky
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
Mat
expKx
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
Mat
expKy
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
kx
.
put
(
0
,
0
,
1
,
1
);
kx
.
put
(
1
,
0
,
1
,
1
);
ky
.
put
(
0
,
0
,
2
,
2
);
ky
.
put
(
1
,
0
,
2
,
2
);
expKx
.
put
(
0
,
0
,
1
,
-
2
,
1
);
expKy
.
put
(
0
,
0
,
1
,
-
2
,
1
);
Imgproc
.
getDerivKernels
(
kx
,
ky
,
2
,
2
,
3
,
true
,
CvType
.
CV_32F
);
assertMatEqual
(
expKx
,
kx
,
EPS
);
assertMatEqual
(
expKy
,
ky
,
EPS
);
// TODO_: write better test
}
public
void
testGetGaussianKernelIntDouble
()
{
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_64FC1
,
new
Scalar
(
1.0
));
dst
=
Imgproc
.
getGaussianKernel
(
1
,
0.5
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_64FC1
,
new
Scalar
(
1
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testGetGaussianKernelIntDoubleInt
()
{
truth
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0.23899426
,
0.52201146
,
0.23899426
);
dst
=
Imgproc
.
getGaussianKernel
(
3
,
0.8
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
3
,
1
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0.23899426
,
0.52201146
,
0.23899426
);
assertMatEqual
(
truth
,
dst
,
EPS
);
}
...
...
@@ -1004,49 +1029,58 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testGetRectSubPixMatSizePointMat
()
{
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
255
));
Size
size
=
new
Size
(
3
,
3
);
Point
center
=
new
Point
(
gray255
.
cols
()
/
2
,
gray255
.
rows
()
/
2
);
Imgproc
.
getRectSubPix
(
gray255
,
size
,
center
,
dst
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8U
,
new
Scalar
(
255
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testGetRectSubPixMatSizePointMatInt
()
{
Mat
src
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
truth
=
new
Mat
(
5
,
5
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Size
patchSize
=
new
Size
(
5
,
5
);
Point
center
=
new
Point
(
src
.
cols
()
/
2
,
src
.
rows
()
/
2
);
Imgproc
.
getRectSubPix
(
src
,
patchSize
,
center
,
dst
);
truth
=
new
Mat
(
5
,
5
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testGetRotationMatrix2D
()
{
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64F
);
truth
.
put
(
0
,
0
,
1
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
1
,
0
);
Point
center
=
new
Point
(
0
,
0
);
dst
=
Imgproc
.
getRotationMatrix2D
(
center
,
0.0
,
1.0
);
dst
=
Imgproc
.
getRotationMatrix2D
(
center
,
0
,
1
);
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64F
)
{
{
put
(
0
,
0
,
1
,
0
,
0
);
put
(
1
,
0
,
0
,
1
,
0
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testGetStructuringElementIntSize
()
{
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8UC1
,
new
Scalar
(
1.0
));
dst
=
Imgproc
.
getStructuringElement
(
Imgproc
.
MORPH_RECT
,
size
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8UC1
,
new
Scalar
(
1
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testGetStructuringElementIntSizePoint
()
{
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8UC1
);
truth
.
put
(
0
,
0
,
0
,
0
,
1
);
truth
.
put
(
1
,
0
,
0
,
0
,
1
);
truth
.
put
(
2
,
0
,
1
,
1
,
1
);
dst
=
Imgproc
.
getStructuringElement
(
Imgproc
.
MORPH_CROSS
,
size
,
anchorPoint
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_8UC1
)
{
{
put
(
0
,
0
,
0
,
0
,
1
);
put
(
1
,
0
,
0
,
0
,
1
);
put
(
2
,
0
,
1
,
1
,
1
);
}
};
assertMatEqual
(
truth
,
dst
);
}
...
...
@@ -1116,54 +1150,78 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testHoughCirclesMatMatIntDoubleDouble
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
);
assertEquals
(
0
,
circles
.
cols
());
}
public
void
testHoughCirclesMatMatIntDoubleDouble1
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
Point
center
=
new
Point
(
img
.
cols
()
/
2
,
img
.
rows
()
/
2
);
int
radius
=
Math
.
min
(
img
.
cols
()
/
4
,
img
.
rows
()
/
4
);
Core
.
circle
(
img
,
center
,
radius
,
colorBlack
,
3
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
);
assertEquals
(
1
,
circles
.
cols
());
}
public
void
testHoughCirclesMatMatIntDoubleDoubleDouble
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
double
param1
=
50
;
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
,
param1
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
,
param1
);
assertEquals
(
0
,
circles
.
cols
());
}
public
void
testHoughCirclesMatMatIntDoubleDoubleDouble1
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
double
param1
=
50
;
Point
center
=
new
Point
(
img
.
cols
()
/
2
,
img
.
rows
()
/
2
);
int
radius
=
Math
.
min
(
img
.
cols
()
/
4
,
img
.
rows
()
/
4
);
Core
.
circle
(
img
,
center
,
radius
,
colorBlack
,
3
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
,
param1
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
,
param1
);
assertEquals
(
1
,
circles
.
cols
());
}
public
void
testHoughCirclesMatMatIntDoubleDoubleDoubleDouble
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
double
param1
=
50
;
double
param2
=
100
;
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
,
param1
,
param2
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
,
param1
,
param2
);
assertEquals
(
0
,
circles
.
cols
());
}
public
void
testHoughCirclesMatMatIntDoubleDoubleDoubleDouble1
()
{
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
circles
=
new
Mat
();
double
param1
=
50
;
double
param2
=
100
;
Point
center
=
new
Point
(
img
.
cols
()
/
2
,
img
.
rows
()
/
2
);
int
radius
=
Math
.
min
(
img
.
cols
()
/
4
,
img
.
rows
()
/
4
);
Core
.
circle
(
img
,
center
,
radius
,
colorBlack
,
3
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2.0
,
img
.
rows
()
/
4
,
param1
,
param2
);
Imgproc
.
HoughCircles
(
img
,
circles
,
Imgproc
.
CV_HOUGH_GRADIENT
,
2
,
img
.
rows
()
/
4
,
param1
,
param2
);
assertEquals
(
1
,
circles
.
cols
());
}
...
...
@@ -1179,11 +1237,8 @@ public class ImgprocTest extends OpenCVTestCase {
int
sz
=
512
;
Mat
img
=
new
Mat
(
sz
,
sz
,
CvType
.
CV_8U
,
new
Scalar
(
128
));
Mat
lines
=
new
Mat
();
Point
point1
=
new
Point
(
50
,
50
);
Point
point2
=
new
Point
(
img
.
cols
()
/
2
,
img
.
rows
()
/
2
);
assertEquals
(
0
,
lines
.
cols
());
Core
.
line
(
img
,
point1
,
point2
,
colorBlack
,
2
);
Imgproc
.
HoughLines
(
img
,
lines
,
1
,
5
,
1
);
...
...
@@ -1216,13 +1271,14 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testInitUndistortRectifyMap
()
{
fail
(
"Not yet implemented"
);
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
cameraMatrix
.
put
(
0
,
0
,
1
,
0
,
1
);
cameraMatrix
.
put
(
1
,
0
,
0
,
1
,
1
);
cameraMatrix
.
put
(
2
,
0
,
0
,
0
,
1
);
Mat
R
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
.0
));
Mat
newCameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
.0
));
Mat
R
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Mat
newCameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Mat
distCoeffs
=
new
Mat
();
Mat
map1
=
new
Mat
();
...
...
@@ -1230,10 +1286,10 @@ public class ImgprocTest extends OpenCVTestCase {
// TODO: complete this test
Imgproc
.
initUndistortRectifyMap
(
cameraMatrix
,
distCoeffs
,
R
,
newCameraMatrix
,
size
,
CvType
.
CV_32F
,
map1
,
map2
);
fail
(
"Not yet implemented"
);
}
public
void
testInitWideAngleProjMapMatMatSizeIntIntMatMat
()
{
fail
(
"Not yet implemented"
);
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Mat
distCoeffs
=
new
Mat
(
1
,
4
,
CvType
.
CV_32F
);
// Size imageSize = new Size(2, 2);
...
...
@@ -1242,15 +1298,14 @@ public class ImgprocTest extends OpenCVTestCase {
cameraMatrix
.
put
(
1
,
0
,
0
,
1
,
2
);
cameraMatrix
.
put
(
2
,
0
,
0
,
0
,
1
);
distCoeffs
.
put
(
0
,
0
,
1
.0
,
3.0
,
2.0
,
4
);
distCoeffs
.
put
(
0
,
0
,
1
,
3
,
2
,
4
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
0
,
0
);
truth
.
put
(
2
,
0
,
0
,
3
,
0
);
// TODO: No documentation for this function
// Imgproc.initWideAngleProjMap(cameraMatrix, distCoeffs, imageSize,
// 5.0, m1type, truthput1, truthput2);
fail
(
"Not yet implemented"
);
// 5, m1type, truthput1, truthput2);
}
public
void
testInitWideAngleProjMapMatMatSizeIntIntMatMatInt
()
{
...
...
@@ -1262,12 +1317,17 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testInpaint
()
{
Imgproc
.
inpaint
(
gray255
,
gray128
,
dst
,
3.0
,
Imgproc
.
INPAINT_TELEA
);
assertMatEqual
(
gray255
,
dst
);
Core
.
circle
(
gray255
,
new
Point
(
matSize
/
2
,
matSize
/
2
),
2
,
colorBlack
,
Core
.
FILLED
);
Core
.
circle
(
gray0
,
new
Point
(
matSize
/
2
,
matSize
/
2
),
2
,
colorWhite
,
Core
.
FILLED
);
Imgproc
.
inpaint
(
gray255
,
gray0
,
dst
,
3
,
Imgproc
.
INPAINT_TELEA
);
OpenCVTestRunner
.
Log
(
dst
);
// TODO:remove
assertMatEqual
(
getMat
(
CvType
.
CV_8U
,
255
),
dst
);
}
public
void
testIntegral2MatMatMat
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
.0
));
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Mat
expSum
=
new
Mat
(
4
,
4
,
CvType
.
CV_64F
);
Mat
expSqsum
=
new
Mat
(
4
,
4
,
CvType
.
CV_64F
);
Mat
sum
=
new
Mat
();
...
...
@@ -1284,12 +1344,13 @@ public class ImgprocTest extends OpenCVTestCase {
expSqsum
.
put
(
3
,
0
,
0
,
27
,
54
,
81
);
Imgproc
.
integral2
(
src
,
sum
,
sqsum
);
assertMatEqual
(
expSum
,
sum
,
EPS
);
assertMatEqual
(
expSqsum
,
sqsum
,
EPS
);
}
public
void
testIntegral2MatMatMatInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
.0
));
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Mat
expSum
=
new
Mat
(
4
,
4
,
CvType
.
CV_64F
);
Mat
expSqsum
=
new
Mat
(
4
,
4
,
CvType
.
CV_64F
);
Mat
sum
=
new
Mat
();
...
...
@@ -1306,12 +1367,13 @@ public class ImgprocTest extends OpenCVTestCase {
expSqsum
.
put
(
3
,
0
,
0
,
27
,
54
,
81
);
Imgproc
.
integral2
(
src
,
sum
,
sqsum
,
CvType
.
CV_64F
);
assertMatEqual
(
expSum
,
sum
,
EPS
);
assertMatEqual
(
expSqsum
,
sqsum
,
EPS
);
}
public
void
testIntegral3MatMatMatMat
()
{
Mat
src
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
1
.0
));
Mat
src
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
Mat
expSum
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
Mat
expSqsum
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
Mat
expTilted
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
...
...
@@ -1329,14 +1391,14 @@ public class ImgprocTest extends OpenCVTestCase {
expTilted
.
put
(
1
,
0
,
0
,
1
);
Imgproc
.
integral3
(
src
,
sum
,
sqsum
,
tilted
);
assertMatEqual
(
expSum
,
sum
,
EPS
);
assertMatEqual
(
expSqsum
,
sqsum
,
EPS
);
assertMatEqual
(
expTilted
,
tilted
,
EPS
);
}
public
void
testIntegral3MatMatMatMatInt
()
{
Mat
src
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
1
.0
));
Mat
src
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
Mat
expSum
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
Mat
expSqsum
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
Mat
expTilted
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_64F
);
...
...
@@ -1354,122 +1416,138 @@ public class ImgprocTest extends OpenCVTestCase {
expTilted
.
put
(
1
,
0
,
0
,
1
);
Imgproc
.
integral3
(
src
,
sum
,
sqsum
,
tilted
,
CvType
.
CV_64F
);
assertMatEqual
(
expSum
,
sum
,
EPS
);
assertMatEqual
(
expSqsum
,
sqsum
,
EPS
);
assertMatEqual
(
expTilted
,
tilted
,
EPS
);
}
public
void
testIntegralMatMat
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_64F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
2
,
4
);
truth
.
put
(
2
,
0
,
0
,
4
,
8
);
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Imgproc
.
integral
(
src
,
dst
);
assertMatEqual
(
truth
,
dst
,
EPS
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_64F
)
{
{
put
(
0
,
0
,
0
,
0
,
0
);
put
(
1
,
0
,
0
,
2
,
4
);
put
(
2
,
0
,
0
,
4
,
8
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testIntegralMatMatInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_64F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
2
,
4
);
truth
.
put
(
2
,
0
,
0
,
4
,
8
);
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Imgproc
.
integral
(
src
,
dst
,
CvType
.
CV_64F
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_64F
)
{
{
put
(
0
,
0
,
0
,
0
,
0
);
put
(
1
,
0
,
0
,
2
,
4
);
put
(
2
,
0
,
0
,
4
,
8
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testInvertAffineTransform
()
{
Mat
src
=
new
Mat
(
2
,
3
,
CvType
.
CV_64F
,
new
Scalar
(
1
));
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64F
,
new
Scalar
(
0
));
Imgproc
.
invertAffineTransform
(
src
,
dst
);
truth
=
new
Mat
(
2
,
3
,
CvType
.
CV_64F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testIsContourConvex
()
{
Mat
contour1
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
contour1
.
put
(
0
,
0
,
0.0
,
0.0
,
10.0
,
0.0
,
10.0
,
10.0
,
5.0
,
4.0
);
List
<
Point
>
contour1
=
Arrays
.
asList
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
4
)
);
assertFalse
(
Imgproc
.
isContourConvex
(
contour1
));
Mat
contour2
=
new
Mat
(
1
,
2
,
CvType
.
CV_32FC2
);
contour2
.
put
(
0
,
0
,
1.0
,
1.0
,
5.0
,
1.0
);
assert
Fals
e
(
Imgproc
.
isContourConvex
(
contour2
));
List
<
Point
>
contour2
=
Arrays
.
asList
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
6
)
);
assert
Tru
e
(
Imgproc
.
isContourConvex
(
contour2
));
}
public
void
testLaplacianMatMatInt
()
{
Imgproc
.
Laplacian
(
gray0
,
dst
,
CvType
.
CV_8U
);
assertMatEqual
(
gray0
,
dst
);
}
public
void
testLaplacianMatMatIntInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0
.0
));
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
);
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testLaplacianMatMatIntIntDouble
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2.0
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
-
8
,
8
);
truth
.
put
(
1
,
0
,
8
,
-
8
);
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
-
8
,
8
);
put
(
1
,
0
,
8
,
-
8
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testLaplacianMatMatIntIntDoubleDouble
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
-
7.9990001
,
8.0009995
);
truth
.
put
(
1
,
0
,
8.0009995
,
-
7.9990001
);
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2
,
EPS
);
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2.0
,
EPS
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
-
7.9990001
,
8.0009995
);
put
(
1
,
0
,
8.0009995
,
-
7.9990001
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testLaplacianMatMatIntIntDoubleDoubleInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0.00099945068
));
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2
,
EPS
,
Imgproc
.
BORDER_REFLECT
);
Imgproc
.
Laplacian
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
2.0
,
EPS
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0.00099945068
)
);
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testMatchShapes
()
{
Mat
contour1
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
Mat
contour2
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
contour1
.
put
(
0
,
0
,
1
,
1
,
5
,
1
,
4
,
3
,
6
,
2
);
contour2
.
put
(
0
,
0
,
1
,
1
,
6
,
1
,
4
,
1
,
2
,
5
);
contour1
.
put
(
0
,
0
,
1.0
,
1.0
,
5.0
,
1.0
,
4.0
,
3.0
,
6.0
,
2.0
);
contour2
.
put
(
0
,
0
,
1.0
,
1.0
,
6.0
,
1.0
,
4.0
,
1.0
,
2.0
,
5.0
);
double
distance
=
Imgproc
.
matchShapes
(
contour1
,
contour2
,
Imgproc
.
CV_CONTOURS_MATCH_I1
,
1
);
double
comparer
=
Imgproc
.
matchShapes
(
contour1
,
contour2
,
Imgproc
.
CV_CONTOURS_MATCH_I1
,
1.0
);
double
truthComparer
=
2.98
;
assertEquals
(
truthComparer
,
comparer
,
weakEPS
);
assertEquals
(
2.81109697365334
,
distance
,
EPS
);
}
public
void
testMatchTemplate
()
{
Mat
image
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
Mat
templ
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
image
.
put
(
0
,
0
,
1
,
2
,
3
,
4
);
templ
.
put
(
0
,
0
,
5
,
6
,
7
,
8
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
70
));
Imgproc
.
matchTemplate
(
image
,
templ
,
dst
,
Imgproc
.
TM_CCORR
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
70
));
assertMatEqual
(
truth
,
dst
,
EPS
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
Imgproc
.
matchTemplate
(
gray255
,
gray0
,
dst
,
Imgproc
.
TM_CCORR
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
...
...
@@ -1479,15 +1557,16 @@ public class ImgprocTest extends OpenCVTestCase {
Imgproc
.
medianBlur
(
gray2
,
dst
,
3
);
assertMatEqual
(
gray2
,
dst
);
// TODO_: write better test
}
public
void
testMinAreaRect
()
{
Mat
points
=
new
Mat
(
1
,
4
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
1.0
,
1.0
,
5.0
,
1.0
,
4.0
,
3.0
,
6.0
,
2.0
);
List
<
Point
>
points
=
Arrays
.
asList
(
new
Point
(
1
,
1
),
new
Point
(
5
,
1
),
new
Point
(
4
,
3
),
new
Point
(
6
,
2
));
RotatedRect
rrect
=
Imgproc
.
minAreaRect
(
points
);
assertEquals
(
new
Size
(
2
,
5
),
rrect
.
size
);
assertEquals
(-
90.
0
,
rrect
.
angle
);
assertEquals
(-
90
.,
rrect
.
angle
);
assertEquals
(
new
Point
(
3.5
,
2
),
rrect
.
center
);
}
...
...
@@ -1498,16 +1577,13 @@ public class ImgprocTest extends OpenCVTestCase {
points
.
add
(
new
Point
(
0
,
-
1
));
points
.
add
(
new
Point
(
1
,
0
));
points
.
add
(
new
Point
(
0
,
1
));
Point
actualCenter
=
new
Point
();
float
[]
radius
=
new
float
[]
{
347.0f
};
Imgproc
.
minEnclosingCircle
(
points
,
actualCenter
,
radius
);
float
[]
radius
=
new
float
[
1
];
Point
truthCenter
=
new
Point
(
0
,
0
);
assertEquals
(
truthCenter
,
actualCenter
);
Imgproc
.
minEnclosingCircle
(
points
,
actualCenter
,
radius
);
float
truthRadius
=
1.0f
;
assertEquals
(
truthRadius
,
radius
[
0
],
weak
EPS
);
assertEquals
(
new
Point
(
0
,
0
),
actualCenter
)
;
assertEquals
(
1.03f
,
radius
[
0
],
EPS
);
}
public
void
testMomentsMat
()
{
...
...
@@ -1520,19 +1596,21 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testMorphologyExMatMatIntMat
()
{
Imgproc
.
morphologyEx
(
gray255
,
dst
,
Imgproc
.
MORPH_GRADIENT
,
gray0
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testMorphologyExMatMatIntMatPoint
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
,
new
Scalar
(
0
));
Point
point
=
new
Point
(
0
,
0
);
truth
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
Imgproc
.
morphologyEx
(
src
,
dst
,
Imgproc
.
MORPH_OPEN
,
kernel
,
point
);
truth
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
assertMatEqual
(
truth
,
dst
);
// TODO_: write better test
}
public
void
testMorphologyExMatMatIntMatPointInt
()
{
...
...
@@ -1542,22 +1620,27 @@ public class ImgprocTest extends OpenCVTestCase {
Point
point
=
new
Point
(
0
,
0
);
Imgproc
.
morphologyEx
(
src
,
dst
,
Imgproc
.
MORPH_CLOSE
,
kernel
,
point
,
10
);
truth
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
assertMatEqual
(
truth
,
dst
);
// TODO_: write better test
}
public
void
testMorphologyExMatMatIntMatPointIntInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
src
.
put
(
0
,
0
,
2
,
1
);
src
.
put
(
1
,
0
,
2
,
1
);
Mat
kernel
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
,
new
Scalar
(
1
));
Point
point
=
new
Point
(
1
,
1
);
Imgproc
.
morphologyEx
(
src
,
dst
,
Imgproc
.
MORPH_TOPHAT
,
kernel
,
point
,
10
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
truth
.
put
(
0
,
0
,
1
,
0
);
truth
.
put
(
1
,
0
,
1
,
0
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
1
,
0
);
put
(
1
,
0
,
1
,
0
);
}
};
assertMatEqual
(
truth
,
dst
);
}
...
...
@@ -1571,102 +1654,106 @@ public class ImgprocTest extends OpenCVTestCase {
Scalar
sc
=
new
Scalar
(
3
,
3
);
Imgproc
.
morphologyEx
(
src
,
dst
,
Imgproc
.
MORPH_TOPHAT
,
kernel
,
point
,
10
,
Imgproc
.
BORDER_REFLECT
,
sc
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
);
truth
.
put
(
0
,
0
,
1
,
0
);
truth
.
put
(
1
,
0
,
1
,
0
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8U
)
{
{
put
(
0
,
0
,
1
,
0
);
put
(
1
,
0
,
1
,
0
);
}
};
assertMatEqual
(
truth
,
dst
);
// TODO_: write better test
}
public
void
testPointPolygonTest
()
{
Mat
contour1
=
new
Mat
(
1
,
5
,
CvType
.
CV_32FC2
);
contour1
.
put
(
0
,
0
,
0.0
,
0.0
,
1.0
,
3.0
,
3.0
,
4.0
,
4.0
,
3.0
,
2.0
,
1.0
);
Point
pt1
=
new
Point
(
contour1
.
cols
()
/
2
,
contour1
.
rows
()
/
2
);
double
sign1
=
Imgproc
.
pointPolygonTest
(
contour1
,
pt1
,
false
);
assertTrue
(
sign1
<
0
);
List
<
Point
>
contour
=
Arrays
.
asList
(
new
Point
(
0
,
0
),
new
Point
(
1
,
3
),
new
Point
(
3
,
4
),
new
Point
(
4
,
3
),
new
Point
(
2
,
1
));
Mat
contour2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC2
);
contour2
.
put
(
0
,
0
,
0.0
,
0.0
,
2.0
,
0.0
,
1.0
,
3.0
);
Point
pt2
=
new
Point
(
1
,
1
);
double
sign1
=
Imgproc
.
pointPolygonTest
(
contour
,
new
Point
(
2
,
2
),
false
);
assertEquals
(
100.0
,
sign1
);
//FIXME: 1.0 should be expected
double
sign2
=
Imgproc
.
pointPolygonTest
(
contour
2
,
pt2
,
fals
e
);
assertEquals
(
100.0
,
sign2
);
double
sign2
=
Imgproc
.
pointPolygonTest
(
contour
,
new
Point
(
4
,
4
),
tru
e
);
assertEquals
(
-
Math
.
sqrt
(
0.5
)
,
sign2
);
}
public
void
testPreCornerDetectMatMatInt
()
{
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
int
ksize
=
3
;
Imgproc
.
preCornerDetect
(
src
,
dst
,
ksize
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testPreCornerDetectMatMatIntInt
()
{
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
int
ksize
=
3
;
Imgproc
.
preCornerDetect
(
src
,
dst
,
ksize
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
// TODO_: write better test
}
public
void
testPyrDownMatMat
()
{
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
1
,
4
,
2
);
src
.
put
(
1
,
0
,
3
,
2
,
6
,
8
);
src
.
put
(
2
,
0
,
4
,
6
,
8
,
10
);
src
.
put
(
3
,
0
,
12
,
32
,
6
,
18
);
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
1
,
4
,
2
);
put
(
1
,
0
,
3
,
2
,
6
,
8
);
put
(
2
,
0
,
4
,
6
,
8
,
10
);
put
(
3
,
0
,
12
,
32
,
6
,
18
);
}
};
Imgproc
.
pyrDown
(
src
,
dst
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2.78125
,
4.609375
);
truth
.
put
(
1
,
0
,
8.546875
,
8.8515625
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2.78125
,
4.609375
);
put
(
1
,
0
,
8.546875
,
8.8515625
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testPyrDownMatMatSize
()
{
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
Mat
src
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
1
,
4
,
2
);
put
(
1
,
0
,
3
,
2
,
6
,
8
);
put
(
2
,
0
,
4
,
6
,
8
,
10
);
put
(
3
,
0
,
12
,
32
,
6
,
18
);
}
};
Size
dstSize
=
new
Size
(
2
,
2
);
src
.
put
(
0
,
0
,
2
,
1
,
4
,
2
);
src
.
put
(
1
,
0
,
3
,
2
,
6
,
8
);
src
.
put
(
2
,
0
,
4
,
6
,
8
,
10
);
src
.
put
(
3
,
0
,
12
,
32
,
6
,
18
);
truth
.
put
(
0
,
0
,
2.78125
,
4.609375
);
truth
.
put
(
1
,
0
,
8.546875
,
8.8515625
);
Imgproc
.
pyrDown
(
src
,
dst
,
dstSize
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2.78125
,
4.609375
);
put
(
1
,
0
,
8.546875
,
8.8515625
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
// TODO_: write better test
}
public
void
testPyrMeanShiftFilteringMatMatDoubleDouble
()
{
Mat
src
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_8UC3
,
new
Scalar
(
0
.0
));
Mat
src
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_8UC3
,
new
Scalar
(
0
));
Imgproc
.
pyrMeanShiftFiltering
(
src
,
dst
,
10.0
,
50.0
);
truth
=
src
.
clone
();
assertMatEqual
(
truth
,
dst
);
Imgproc
.
pyrMeanShiftFiltering
(
src
,
dst
,
10
,
50
);
assertMatEqual
(
src
,
dst
);
// TODO_: write better test
}
public
void
testPyrMeanShiftFilteringMatMatDoubleDoubleInt
()
{
Mat
src
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_8UC3
,
new
Scalar
(
255.0
));
Imgproc
.
pyrMeanShiftFiltering
(
src
,
dst
,
10.0
,
50.0
,
2
);
truth
=
src
.
clone
();
assertMatEqual
(
truth
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testPyrMeanShiftFilteringMatMatDoubleDoubleIntTermCriteria
()
{
Mat
src
=
new
Mat
(
matSize
,
matSize
,
CvType
.
CV_8UC3
,
new
Scalar
(
255.0
));
TermCriteria
criteria
=
new
TermCriteria
(
2
/* TODO: CV_TERMCRIT_EPS */
,
0
,
0.01
);
Imgproc
.
pyrMeanShiftFiltering
(
src
,
dst
,
10.0
,
10.0
,
3
,
criteria
);
truth
=
src
.
clone
();
assertMatEqual
(
truth
,
dst
);
fail
(
"Not yet implemented"
);
}
public
void
testPyrUpMatMat
()
{
...
...
@@ -1674,53 +1761,48 @@ public class ImgprocTest extends OpenCVTestCase {
src
.
put
(
0
,
0
,
2
,
1
);
src
.
put
(
1
,
0
,
3
,
2
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2
,
1.75
,
1.375
,
1.25
);
truth
.
put
(
1
,
0
,
2.25
,
2
,
1.625
,
1.5
);
truth
.
put
(
2
,
0
,
2.5
,
2.25
,
1.875
,
1.75
);
truth
.
put
(
3
,
0
,
2.25
,
2
,
1.625
,
1.5
);
Imgproc
.
pyrUp
(
src
,
dst
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
1.75
,
1.375
,
1.25
);
put
(
1
,
0
,
2.25
,
2
,
1.625
,
1.5
);
put
(
2
,
0
,
2.5
,
2.25
,
1.875
,
1.75
);
put
(
3
,
0
,
2.25
,
2
,
1.625
,
1.5
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testPyrUpMatMatSize
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
1
);
src
.
put
(
1
,
0
,
3
,
2
);
Size
dstSize
=
new
Size
(
4
,
4
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2
,
1.75
,
1.375
,
1.25
);
truth
.
put
(
1
,
0
,
2.25
,
2
,
1.625
,
1.5
);
truth
.
put
(
2
,
0
,
2.5
,
2.25
,
1.875
,
1.75
);
truth
.
put
(
3
,
0
,
2.25
,
2
,
1.625
,
1.5
);
Imgproc
.
pyrUp
(
src
,
dst
,
dstSize
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testRemapMatMatMatMatInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
fail
(
"Not yet implemented"
);
// this test does something weird
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Mat
map1
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Mat
map2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
map1
.
put
(
0
,
0
,
3.0
,
6.0
,
5
,
0
);
map2
.
put
(
0
,
0
,
4.0
,
8.0
,
12.0
);
truth
=
new
Mat
(
1
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
map1
.
put
(
0
,
0
,
3
,
6
,
5
);
map2
.
put
(
0
,
0
,
4
,
8
,
12
);
Imgproc
.
remap
(
src
,
dst
,
map1
,
map2
,
Imgproc
.
INTER_LINEAR
);
truth
=
new
Mat
(
1
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testRemapMatMatMatMatIntInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
fail
(
"Not yet implemented"
);
// this test does something weird
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Mat
map1
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Mat
map2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
map1
.
put
(
0
,
0
,
3
.0
,
6.0
,
5
,
0
);
map2
.
put
(
0
,
0
,
4
.0
,
8.0
,
12.0
);
map1
.
put
(
0
,
0
,
3
,
6
,
5
,
0
);
map2
.
put
(
0
,
0
,
4
,
8
,
12
);
truth
=
new
Mat
(
1
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
...
...
@@ -1729,14 +1811,16 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testRemapMatMatMatMatIntIntScalar
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2.0
));
fail
(
"Not yet implemented"
);
// this test does something weird
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Mat
map1
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Mat
map2
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Scalar
sc
=
new
Scalar
(
0
.0
);
Scalar
sc
=
new
Scalar
(
0
);
map1
.
put
(
0
,
0
,
3
.0
,
6.0
,
5
,
0
);
map2
.
put
(
0
,
0
,
4
.0
,
8.0
,
12.0
);
map1
.
put
(
0
,
0
,
3
,
6
,
5
,
0
);
map2
.
put
(
0
,
0
,
4
,
8
,
12
);
truth
=
new
Mat
(
1
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
...
...
@@ -1745,392 +1829,373 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testResizeMatMatSize
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8UC1
,
new
Scalar
(
1.0
));
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_8UC1
,
new
Scalar
(
1.0
));
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8UC1
,
new
Scalar
(
1
));
Size
dsize
=
new
Size
(
1
,
1
);
Imgproc
.
resize
(
src
,
dst
,
dsize
);
truth
=
new
Mat
(
1
,
1
,
CvType
.
CV_8UC1
,
new
Scalar
(
1
));
assertMatEqual
(
truth
,
dst
);
}
public
void
testResizeMatMatSizeDouble
()
{
Size
dsize
=
new
Size
(
2
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8UC1
,
new
Scalar
(
255
));
Imgproc
.
resize
(
gray255
,
dst
,
dsize
,
0.5
);
assertMatEqual
(
truth
,
dst
);
try
{
Imgproc
.
resize
(
gray255
,
dst
,
new
Size
(),
0.5
);
fail
(
"Expected CvException was not thrown"
);
}
catch
(
CvException
e
)
{
// expected
}
}
public
void
testResizeMatMatSizeDoubleDouble
()
{
Size
dsize
=
new
Size
(
2
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8UC1
,
new
Scalar
(
255
)
);
Imgproc
.
resize
(
gray255
,
dst
,
new
Size
(),
0.5
,
0.5
);
OpenCVTestRunner
.
Log
(
dst
);
Imgproc
.
resize
(
gray255
,
dst
,
dsize
,
0.0
,
0.0
);
truth
=
new
Mat
((
int
)
(
matSize
*
0.5
),
(
int
)
(
matSize
*
0.5
),
CvType
.
CV_8U
,
new
Scalar
(
255
)
);
assertMatEqual
(
truth
,
dst
);
}
public
void
testResizeMatMatSizeDoubleDoubleInt
()
{
Size
dsize
=
new
Size
(
2
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_8UC1
,
new
Scalar
(
255
));
Imgproc
.
resize
(
gray255
,
dst
,
new
Size
(
2
,
2
),
0
,
0
,
Imgproc
.
INTER_AREA
);
Imgproc
.
resize
(
gray255
,
dst
,
dsize
,
1.5
,
1.5
,
Imgproc
.
INTER_AREA
);
truth
=
new
Mat
(
2
,
2
,
CvType
.
CV_8UC1
,
new
Scalar
(
255
)
);
assertMatEqual
(
truth
,
dst
);
// TODO_: write better test
}
public
void
testScharrMatMatIntIntInt
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
Imgproc
.
Scharr
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testScharrMatMatIntIntIntDouble
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
Imgproc
.
Scharr
(
src
,
dst
,
CvType
.
CV_32F
,
0
,
1
,
1.5
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0
));
assertMatEqual
(
truth
,
dst
,
EPS
);
// TODO_: write better test
}
public
void
testScharrMatMatIntIntIntDoubleDouble
()
{
Mat
src
=
Mat
.
eye
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0.001
));
Imgproc
.
Scharr
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
1.5
,
0.001
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
0.001
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testScharrMatMatIntIntIntDoubleDoubleInt
()
{
Mat
src
=
Mat
.
eye
(
3
,
3
,
CvType
.
CV_32F
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
-
15
,
-
19.5
,
-
4.5
);
truth
.
put
(
1
,
0
,
10.5
,
0
,
-
10.5
);
truth
.
put
(
2
,
0
,
4.5
,
19.5
,
15
);
Imgproc
.
Scharr
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
1.5
,
0
,
Imgproc
.
BORDER_REFLECT
);
Imgproc
.
Scharr
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
1.5
,
0.0
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
-
15
,
-
19.5
,
-
4.5
);
put
(
1
,
0
,
10.5
,
0
,
-
10.5
);
put
(
2
,
0
,
4.5
,
19.5
,
15
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testSepFilter2DMatMatIntMatMat
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
.0
));
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
2
));
Mat
kernelX
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Mat
kernelY
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
420
));
kernelX
.
put
(
0
,
0
,
4.0
,
3.0
,
7.0
);
kernelY
.
put
(
0
,
0
,
9.0
,
4.0
,
2.0
);
kernelX
.
put
(
0
,
0
,
4
,
3
,
7
);
kernelY
.
put
(
0
,
0
,
9
,
4
,
2
);
Imgproc
.
sepFilter2D
(
src
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
420
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testSepFilter2DMatMatIntMatMatPoint
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
.0
));
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
));
Mat
kernelX
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
Mat
kernelY
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
36.0
));
kernelX
.
put
(
0
,
0
,
2.0
,
2.0
,
2.0
);
kernelY
.
put
(
0
,
0
,
1.0
,
1.0
,
1.0
);
kernelX
.
put
(
0
,
0
,
2
,
2
,
2
);
kernelY
.
put
(
0
,
0
,
1
,
1
,
1
);
Imgproc
.
sepFilter2D
(
src
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
,
anchorPoint
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
36
));
assertMatEqual
(
truth
,
dst
,
EPS
);
// TODO_: write better test
}
public
void
testSepFilter2DMatMatIntMatMatPointDouble
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
,
new
Scalar
(
2.0
));
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32FC1
,
new
Scalar
(
2
));
Mat
kernelX
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
kernelX
.
put
(
0
,
0
,
2.0
,
2.0
,
2.0
);
kernelX
.
put
(
0
,
0
,
2
,
2
,
2
);
Mat
kernelY
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
kernelY
.
put
(
0
,
0
,
1.0
,
1.0
,
1.0
);
kernelY
.
put
(
0
,
0
,
1
,
1
,
1
);
Imgproc
.
sepFilter2D
(
src
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
,
anchorPoint
,
weakEPS
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
36.001
));
Imgproc
.
sepFilter2D
(
src
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
,
anchorPoint
,
EPS
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
36
+
weakEPS
));
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testSepFilter2DMatMatIntMatMatPointDoubleInt
()
{
Mat
kernelX
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
kernelX
.
put
(
0
,
0
,
2
.0
,
2.0
,
2.0
);
kernelX
.
put
(
0
,
0
,
2
,
2
,
2
);
Mat
kernelY
=
new
Mat
(
1
,
3
,
CvType
.
CV_32FC1
);
kernelY
.
put
(
0
,
0
,
1
.0
,
1.0
,
1.0
);
kernelY
.
put
(
0
,
0
,
1
,
1
,
1
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
new
Scalar
(
0.001
));
Imgproc
.
sepFilter2D
(
gray0
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
,
anchorPoint
,
EPS
,
Imgproc
.
BORDER_REFLECT
);
Imgproc
.
sepFilter2D
(
gray0
,
dst
,
CvType
.
CV_32F
,
kernelX
,
kernelY
,
anchorPoint
,
weakEPS
,
Imgproc
.
BORDER_REFLECT
);
truth
=
new
Mat
(
10
,
10
,
CvType
.
CV_32F
,
new
Scalar
(
weakEPS
));
assertMatEqual
(
truth
,
dst
,
EPS
);
// TODO_: write better test
}
public
void
testSobelMatMatIntIntInt
()
{
Imgproc
.
Sobel
(
gray0
,
dst
,
CvType
.
CV_8U
,
2
,
0
);
Imgproc
.
Sobel
(
gray255
,
dst
,
CvType
.
CV_8U
,
1
,
0
);
assertMatEqual
(
gray0
,
dst
);
}
public
void
testSobelMatMatIntIntIntInt
()
{
Imgproc
.
Sobel
(
gray255
,
dst
,
CvType
.
CV_8U
,
1
,
0
,
3
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testSobelMatMatIntIntIntIntDouble
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
0
,
1
);
src
.
put
(
1
,
0
,
3
,
0
,
-
10
);
src
.
put
(
2
,
0
,
-
4
,
0
,
3
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0
,
-
56
,
0
);
truth
.
put
(
1
,
0
,
0
,
-
40
,
0
);
truth
.
put
(
2
,
0
,
0
,
-
24
,
0
);
Imgproc
.
Sobel
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
3
,
2.0
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
0
,
1
);
put
(
1
,
0
,
3
,
0
,
-
10
);
put
(
2
,
0
,
-
4
,
0
,
3
);
}
};
Imgproc
.
Sobel
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
3
,
2
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
0
,
-
56
,
0
);
put
(
1
,
0
,
0
,
-
40
,
0
);
put
(
2
,
0
,
0
,
-
24
,
0
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testSobelMatMatIntIntIntIntDoubleDouble
()
{
Imgproc
.
Sobel
(
gray255
,
dst
,
CvType
.
CV_8U
,
1
,
0
,
3
,
2
.0
,
0.001
);
Imgproc
.
Sobel
(
gray255
,
dst
,
CvType
.
CV_8U
,
1
,
0
,
3
,
2
,
0.001
);
assertMatEqual
(
gray0
,
dst
);
// TODO_: write better test
}
public
void
testSobelMatMatIntIntIntIntDoubleDoubleInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
0
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
1
,
0
,
2
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
-
16
,
-
12
,
4
);
truth
.
put
(
1
,
0
,
-
14
,
-
12
,
2
);
truth
.
put
(
2
,
0
,
-
10
,
0
,
10
);
Imgproc
.
Sobel
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
3
,
2.0
,
0.0
,
Imgproc
.
BORDER_REPLICATE
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
0
,
1
);
put
(
1
,
0
,
6
,
4
,
3
);
put
(
2
,
0
,
1
,
0
,
2
);
}
};
Imgproc
.
Sobel
(
src
,
dst
,
CvType
.
CV_32F
,
1
,
0
,
3
,
2
,
0
,
Imgproc
.
BORDER_REPLICATE
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
-
16
,
-
12
,
4
);
put
(
1
,
0
,
-
14
,
-
12
,
2
);
put
(
2
,
0
,
-
10
,
0
,
10
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testThreshold
()
{
Imgproc
.
threshold
(
gray0
,
dst
,
0.25
,
255.0
,
Imgproc
.
THRESH_TRUNC
);
assertMatEqual
(
gray0
,
dst
);
Imgproc
.
threshold
(
makeMask
(
gray0
.
clone
(),
10
),
dst
,
5
,
255
,
Imgproc
.
THRESH_TRUNC
);
assertMatEqual
(
makeMask
(
gray0
.
clone
(),
5
)
,
dst
);
Imgproc
.
threshold
(
gray1
,
dst
,
0.25
,
255.0
,
Imgproc
.
THRESH_BINARY
);
Imgproc
.
threshold
(
makeMask
(
gray2
.
clone
(),
10
),
dst
,
1
,
255
,
Imgproc
.
THRESH_BINARY
);
assertMatEqual
(
gray255
,
dst
);
Imgproc
.
threshold
(
gray0
,
dst
,
0.25
,
255.0
,
Imgproc
.
THRESH_BINARY_INV
);
assertMatEqual
(
gray255
,
dst
);
Imgproc
.
threshold
(
makeMask
(
gray2
.
clone
(),
10
),
dst
,
3
,
255
,
Imgproc
.
THRESH_BINARY_INV
);
assertMatEqual
(
makeMask
(
gray255
.
clone
(),
0
)
,
dst
);
}
public
void
testUndistortMatMatMatMat
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3.0
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Mat
distCoeffs
=
new
Mat
(
1
,
4
,
CvType
.
CV_32F
);
cameraMatrix
.
put
(
0
,
0
,
1
,
0
,
1
);
cameraMatrix
.
put
(
1
,
0
,
0
,
1
,
2
);
cameraMatrix
.
put
(
2
,
0
,
0
,
0
,
1
);
distCoeffs
.
put
(
0
,
0
,
1.0
,
3.0
,
2.0
,
4.0
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
0
,
0
);
truth
.
put
(
2
,
0
,
0
,
3
,
0
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
0
,
1
);
put
(
1
,
0
,
0
,
1
,
2
);
put
(
2
,
0
,
0
,
0
,
1
);
}
};
Mat
distCoeffs
=
new
Mat
(
1
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
3
,
2
,
4
);
}
};
Imgproc
.
undistort
(
src
,
dst
,
cameraMatrix
,
distCoeffs
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
0
,
0
,
0
);
put
(
1
,
0
,
0
,
0
,
0
);
put
(
2
,
0
,
0
,
3
,
0
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testUndistortMatMatMatMatMat
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3.0
));
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Mat
newCameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
1.0
));
Mat
distCoeffs
=
new
Mat
(
1
,
4
,
CvType
.
CV_32F
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Mat
cameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
0
,
1
);
put
(
1
,
0
,
0
,
1
,
2
);
put
(
2
,
0
,
0
,
0
,
1
);
}
};
Mat
distCoeffs
=
new
Mat
(
1
,
4
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
1
,
4
,
5
);
}
};
Mat
newCameraMatrix
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
cameraMatrix
.
put
(
0
,
0
,
1
,
0
,
1
);
cameraMatrix
.
put
(
1
,
0
,
0
,
1
,
2
);
cameraMatrix
.
put
(
2
,
0
,
0
,
0
,
1
);
distCoeffs
.
put
(
0
,
0
,
2.0
,
1.0
,
4.0
,
5.0
);
Imgproc
.
undistort
(
src
,
dst
,
cameraMatrix
,
distCoeffs
,
newCameraMatrix
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
,
new
Scalar
(
3
));
Imgproc
.
undistort
(
src
,
dst
,
cameraMatrix
,
distCoeffs
,
newCameraMatrix
);
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testWarpAffineMatMatMatSize
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
;
Mat
M
=
new
Mat
(
2
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
0
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
1
,
0
,
2
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
2
,
0
);
truth
.
put
(
2
,
0
,
0
,
6
,
4
);
M
.
put
(
0
,
0
,
1
,
0
,
1
);
M
.
put
(
1
,
0
,
0
,
1
,
1
);
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
size
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
0
,
1
);
put
(
1
,
0
,
6
,
4
,
3
);
put
(
2
,
0
,
1
,
0
,
2
);
}
};
Mat
M
=
new
Mat
(
2
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
0
,
1
);
put
(
1
,
0
,
0
,
1
,
1
);
}
};
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
new
Size
(
3
,
3
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
0
,
0
,
0
);
put
(
1
,
0
,
0
,
2
,
0
);
put
(
2
,
0
,
0
,
6
,
4
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testWarpAffineMatMatMatSizeInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Size
dsize
=
new
Size
(
2
,
2
);
Mat
M
=
new
Mat
(
2
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
6
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
M
.
put
(
0
,
0
,
1
,
0
,
0
);
M
.
put
(
1
,
0
,
0
,
0
,
1
);
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
4
,
1
);
put
(
1
,
0
,
6
,
4
,
3
);
put
(
2
,
0
,
0
,
2
,
2
);
}
};
Mat
M
=
new
Mat
(
2
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
0
,
0
);
put
(
1
,
0
,
0
,
0
,
1
);
}
};
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
new
Size
(
2
,
2
),
Imgproc
.
WARP_INVERSE_MAP
);
truth
=
new
Mat
(
2
,
2
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
6
,
4
);
put
(
1
,
0
,
6
,
4
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testWarpAffineMatMatMatSizeIntInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Size
dsize
=
new
Size
(
2
,
2
);
Mat
M
=
Mat
.
eye
(
2
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
,
Imgproc
.
BORDER_TRANSPARENT
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testWarpAffineMatMatMatSizeIntIntScalar
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Size
dsize
=
new
Size
(
2
,
2
);
Scalar
sc
=
new
Scalar
(
1.0
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
Mat
M
=
new
Mat
(
2
,
3
,
CvType
.
CV_32F
);
M
.
put
(
0
,
0
,
1
,
0
,
0
);
M
.
put
(
1
,
0
,
0
,
0
,
1
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
6
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
Imgproc
.
warpAffine
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
,
Imgproc
.
BORDER_CONSTANT
,
sc
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testWarpPerspectiveMatMatMatSize
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
Mat
M
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
0
,
4
,
5
);
src
.
put
(
2
,
0
,
1
,
2
,
2
);
M
.
put
(
0
,
0
,
1
,
0
,
1
);
M
.
put
(
1
,
0
,
0
,
1
,
1
);
M
.
put
(
2
,
0
,
0
,
0
,
1
);
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
0
,
0
,
0
);
truth
.
put
(
1
,
0
,
0
,
2
,
4
);
truth
.
put
(
2
,
0
,
0
,
0
,
4
);
Imgproc
.
warpPerspective
(
src
,
dst
,
M
,
size
);
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
2
,
4
,
1
);
put
(
1
,
0
,
0
,
4
,
5
);
put
(
2
,
0
,
1
,
2
,
2
);
}
};
Mat
M
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
1
,
0
,
1
);
put
(
1
,
0
,
0
,
1
,
1
);
put
(
2
,
0
,
0
,
0
,
1
);
}
};
Imgproc
.
warpPerspective
(
src
,
dst
,
M
,
new
Size
(
3
,
3
));
truth
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
)
{
{
put
(
0
,
0
,
0
,
0
,
0
);
put
(
1
,
0
,
0
,
2
,
4
);
put
(
2
,
0
,
0
,
0
,
4
);
}
};
assertMatEqual
(
truth
,
dst
,
EPS
);
}
public
void
testWarpPerspectiveMatMatMatSizeInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
Size
dsize
=
new
Size
(
2
,
2
);
Mat
M
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
M
.
put
(
0
,
0
,
1
,
0
,
0
);
M
.
put
(
1
,
0
,
0
,
0
,
1
);
M
.
put
(
2
,
0
,
0
,
0
,
1
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
6
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
Imgproc
.
warpPerspective
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testWarpPerspectiveMatMatMatSizeIntInt
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
Size
dsize
=
new
Size
(
2
,
2
);
Mat
M
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
M
.
put
(
0
,
0
,
1
,
0
,
0
);
M
.
put
(
1
,
0
,
0
,
0
,
1
);
M
.
put
(
2
,
0
,
0
,
0
,
1
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
6
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
Imgproc
.
warpPerspective
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
,
Imgproc
.
BORDER_REFLECT
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testWarpPerspectiveMatMatMatSizeIntIntScalar
()
{
Mat
src
=
new
Mat
(
3
,
3
,
CvType
.
CV_32F
);
src
.
put
(
0
,
0
,
2
,
4
,
1
);
src
.
put
(
1
,
0
,
6
,
4
,
3
);
src
.
put
(
2
,
0
,
0
,
2
,
2
);
Size
dsize
=
new
Size
(
2
,
2
);
Mat
M
=
Mat
.
eye
(
3
,
3
,
CvType
.
CV_32F
);
Scalar
sc
=
new
Scalar
(
1.0
);
truth
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
);
truth
.
put
(
0
,
0
,
2
,
4
);
truth
.
put
(
1
,
0
,
6
,
4
);
Imgproc
.
warpPerspective
(
src
,
dst
,
M
,
dsize
,
Imgproc
.
WARP_INVERSE_MAP
,
Imgproc
.
BORDER_REFLECT
,
sc
);
assertMatEqual
(
truth
,
dst
,
EPS
);
fail
(
"Not yet implemented"
);
}
public
void
testWatershed
()
{
Mat
image
=
Mat
.
eye
(
4
,
4
,
CvType
.
CV_8UC
(
3
));
Mat
markers
=
new
Mat
(
4
,
4
,
CvType
.
CV_32SC1
,
new
Scalar
(
0
));
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32SC1
);
truth
.
put
(
0
,
0
,
-
1
,
-
1
,
-
1
,
-
1
);
truth
.
put
(
1
,
0
,
-
1
,
0
,
0
,
-
1
);
truth
.
put
(
2
,
0
,
-
1
,
0
,
0
,
-
1
);
truth
.
put
(
3
,
0
,
-
1
,
-
1
,
-
1
,
-
1
);
Imgproc
.
watershed
(
image
,
markers
);
truth
=
new
Mat
(
4
,
4
,
CvType
.
CV_32SC1
)
{
{
put
(
0
,
0
,
-
1
,
-
1
,
-
1
,
-
1
);
put
(
1
,
0
,
-
1
,
0
,
0
,
-
1
);
put
(
2
,
0
,
-
1
,
0
,
0
,
-
1
);
put
(
3
,
0
,
-
1
,
-
1
,
-
1
,
-
1
);
}
};
assertMatEqual
(
truth
,
markers
);
}
...
...
modules/java/gen_java.py
View file @
99e3b5a2
...
...
@@ -688,6 +688,13 @@ func_arg_fix = {
'fillPoly'
:
{
'pts'
:
'vector_vector_Point'
,
},
'polylines'
:
{
'pts'
:
'vector_vector_Point'
,
},
'fillConvexPoly'
:
{
'points'
:
'vector_Point'
,
},
'boundingRect'
:
{
'points'
:
'vector_Point'
,
},
#'approxPolyDP' : { 'curve' : 'vector_Point2f', 'CV_OUT approxCurve' : 'vector_Point2f', },
'arcLength'
:
{
'curve'
:
'vector_Point2f'
,
},
'isContourConvex'
:
{
'contour'
:
'vector_Point2f'
,
},
'pointPolygonTest'
:
{
'contour'
:
'vector_Point2f'
,
},
'minAreaRect'
:
{
'points'
:
'vector_Point2f'
,
},
'getAffineTransform'
:
{
'src'
:
'vector_Point2f'
,
'dst'
:
'vector_Point2f'
,
},
},
# '', i.e. no class
}
# func_arg_fix
...
...
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