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
2513f5d3
Commit
2513f5d3
authored
Apr 19, 2012
by
Andrey Pavlenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixing #1808, Java API improvements
parent
13427c0c
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
536 additions
and
126 deletions
+536
-126
Calib3dTest.java
...android_test/src/org/opencv/test/calib3d/Calib3dTest.java
+8
-5
CoreTest.java
.../java/android_test/src/org/opencv/test/core/CoreTest.java
+3
-3
BruteForceHammingLUTDescriptorMatcherTest.java
...features2d/BruteForceHammingLUTDescriptorMatcherTest.java
+2
-0
ImgprocTest.java
...android_test/src/org/opencv/test/imgproc/ImgprocTest.java
+63
-22
Subdiv2DTest.java
...ndroid_test/src/org/opencv/test/imgproc/Subdiv2DTest.java
+2
-2
gen_java.py
modules/java/gen_java.py
+27
-15
converters.cpp
modules/java/src/cpp/converters.cpp
+46
-2
converters.h
modules/java/src/cpp/converters.h
+6
-1
core+MatOfByte.java
modules/java/src/java/core+MatOfByte.java
+13
-15
core+MatOfDMatch.java
modules/java/src/java/core+MatOfDMatch.java
+6
-2
core+MatOfDouble.java
modules/java/src/java/core+MatOfDouble.java
+13
-15
core+MatOfFloat.java
modules/java/src/java/core+MatOfFloat.java
+14
-16
core+MatOfFloat4.java
modules/java/src/java/core+MatOfFloat4.java
+79
-0
core+MatOfFloat6.java
modules/java/src/java/core+MatOfFloat6.java
+79
-0
core+MatOfInt.java
modules/java/src/java/core+MatOfInt.java
+14
-16
core+MatOfInt4.java
modules/java/src/java/core+MatOfInt4.java
+80
-0
core+MatOfKeyPoint.java
modules/java/src/java/core+MatOfKeyPoint.java
+6
-2
core+MatOfPoint.java
modules/java/src/java/core+MatOfPoint.java
+6
-2
core+MatOfPoint2f.java
modules/java/src/java/core+MatOfPoint2f.java
+6
-2
core+MatOfPoint3.java
modules/java/src/java/core+MatOfPoint3.java
+6
-2
core+MatOfPoint3f.java
modules/java/src/java/core+MatOfPoint3f.java
+6
-2
core+MatOfRect.java
modules/java/src/java/core+MatOfRect.java
+6
-2
utils+Converters.java
modules/java/src/java/utils+Converters.java
+45
-0
No files found.
modules/java/android_test/src/org/opencv/test/calib3d/Calib3dTest.java
View file @
2513f5d3
...
...
@@ -4,6 +4,7 @@ import org.opencv.calib3d.Calib3d;
import
org.opencv.core.Core
;
import
org.opencv.core.CvType
;
import
org.opencv.core.Mat
;
import
org.opencv.core.MatOfDouble
;
import
org.opencv.core.MatOfPoint2f
;
import
org.opencv.core.MatOfPoint3f
;
import
org.opencv.core.Point
;
...
...
@@ -174,15 +175,17 @@ public class Calib3dTest extends OpenCVTestCase {
public
void
testFindChessboardCornersMatSizeMat
()
{
Size
patternSize
=
new
Size
(
9
,
6
);
Calib3d
.
findChessboardCorners
(
grayChess
,
patternSize
,
dst
);
assertTrue
(!
dst
.
empty
());
MatOfPoint2f
corners
=
new
MatOfPoint2f
();
Calib3d
.
findChessboardCorners
(
grayChess
,
patternSize
,
corners
);
assertTrue
(!
corners
.
empty
());
}
public
void
testFindChessboardCornersMatSizeMatInt
()
{
Size
patternSize
=
new
Size
(
9
,
6
);
Calib3d
.
findChessboardCorners
(
grayChess
,
patternSize
,
dst
,
Calib3d
.
CALIB_CB_ADAPTIVE_THRESH
+
Calib3d
.
CALIB_CB_NORMALIZE_IMAGE
MatOfPoint2f
corners
=
new
MatOfPoint2f
();
Calib3d
.
findChessboardCorners
(
grayChess
,
patternSize
,
corners
,
Calib3d
.
CALIB_CB_ADAPTIVE_THRESH
+
Calib3d
.
CALIB_CB_NORMALIZE_IMAGE
+
Calib3d
.
CALIB_CB_FAST_CHECK
);
assertTrue
(!
dst
.
empty
());
assertTrue
(!
corners
.
empty
());
}
public
void
testFindCirclesGridDefaultMatSizeMat
()
{
...
...
@@ -515,7 +518,7 @@ public class Calib3dTest extends OpenCVTestCase {
Mat
rvec
=
new
Mat
();
Mat
tvec
=
new
Mat
();
Calib3d
.
solvePnP
(
points3d
,
points2d
,
intrinsics
,
new
Mat
(),
rvec
,
tvec
);
Calib3d
.
solvePnP
(
points3d
,
points2d
,
intrinsics
,
new
Mat
OfDouble
(),
rvec
,
tvec
);
Mat
truth_rvec
=
new
Mat
(
3
,
1
,
CvType
.
CV_64F
);
truth_rvec
.
put
(
0
,
0
,
0
,
Math
.
PI
/
2
,
0
);
...
...
modules/java/android_test/src/org/opencv/test/core/CoreTest.java
View file @
2513f5d3
...
...
@@ -1284,14 +1284,14 @@ public class CoreTest extends OpenCVTestCase {
rgba0
.
setTo
(
new
Scalar
(
10
,
20
,
30
,
40
));
List
<
Mat
>
src
=
Arrays
.
asList
(
rgba0
);
List
<
Mat
>
dst
=
Arrays
.
asList
(
gray3
,
gray2
,
gray1
,
gray0
,
getMat
(
CvType
.
CV_8UC3
,
0
,
0
,
0
));
MatOfInt
fromTo
=
new
MatOfInt
(
1
,
new
int
[]
{
3
,
0
,
MatOfInt
fromTo
=
new
MatOfInt
(
3
,
0
,
3
,
1
,
2
,
2
,
0
,
3
,
2
,
4
,
1
,
5
,
0
,
6
}
0
,
6
);
Core
.
mixChannels
(
src
,
dst
,
fromTo
);
...
...
modules/java/android_test/src/org/opencv/test/features2d/BruteForceHammingLUTDescriptorMatcherTest.java
View file @
2513f5d3
...
...
@@ -189,9 +189,11 @@ public class BruteForceHammingLUTDescriptorMatcherTest extends OpenCVTestCase {
matcher
.
match
(
query
,
train
,
matches
);
/*
OpenCVTestRunner.Log("matches found: " + matches.size());
for (DMatch m : matches.toArray())
OpenCVTestRunner.Log(m.toString());
*/
assertArrayDMatchEquals
(
truth
,
matches
.
toArray
(),
EPS
);
}
...
...
modules/java/android_test/src/org/opencv/test/imgproc/ImgprocTest.java
View file @
2513f5d3
...
...
@@ -9,6 +9,7 @@ import org.opencv.core.CvType;
import
org.opencv.core.Mat
;
import
org.opencv.core.MatOfFloat
;
import
org.opencv.core.MatOfInt
;
import
org.opencv.core.MatOfInt4
;
import
org.opencv.core.MatOfPoint
;
import
org.opencv.core.MatOfPoint2f
;
import
org.opencv.core.Point
;
...
...
@@ -242,9 +243,9 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testCalcBackProject
()
{
List
<
Mat
>
images
=
Arrays
.
asList
(
grayChess
);
MatOfInt
channels
=
new
MatOfInt
(
1
,
new
int
[]{
0
}
);
MatOfInt
histSize
=
new
MatOfInt
(
1
,
new
int
[]{
10
}
);
MatOfFloat
ranges
=
new
MatOfFloat
(
1
,
0
f
,
256
f
);
MatOfInt
channels
=
new
MatOfInt
(
0
);
MatOfInt
histSize
=
new
MatOfInt
(
1
0
);
MatOfFloat
ranges
=
new
MatOfFloat
(
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
...
...
@@ -259,9 +260,9 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloat
()
{
List
<
Mat
>
images
=
Arrays
.
asList
(
gray128
);
MatOfInt
channels
=
new
MatOfInt
(
1
,
new
int
[]{
0
}
);
MatOfInt
histSize
=
new
MatOfInt
(
1
,
new
int
[]{
10
}
);
MatOfFloat
ranges
=
new
MatOfFloat
(
1
,
0
f
,
256
f
);
MatOfInt
channels
=
new
MatOfInt
(
0
);
MatOfInt
histSize
=
new
MatOfInt
(
1
0
);
MatOfFloat
ranges
=
new
MatOfFloat
(
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
...
...
@@ -276,9 +277,9 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloat2d
()
{
List
<
Mat
>
images
=
Arrays
.
asList
(
gray255
,
gray128
);
MatOfInt
channels
=
new
MatOfInt
(
1
,
0
,
1
);
MatOfInt
histSize
=
new
MatOfInt
(
1
,
1
0
,
10
);
MatOfFloat
ranges
=
new
MatOfFloat
(
1
,
0
f
,
256
f
,
0
f
,
256
f
);
MatOfInt
channels
=
new
MatOfInt
(
0
,
1
);
MatOfInt
histSize
=
new
MatOfInt
(
10
,
10
);
MatOfFloat
ranges
=
new
MatOfFloat
(
0
f
,
256
f
,
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
);
...
...
@@ -293,9 +294,9 @@ public class ImgprocTest extends OpenCVTestCase {
public
void
testCalcHistListOfMatListOfIntegerMatMatListOfIntegerListOfFloatBoolean
()
{
List
<
Mat
>
images
=
Arrays
.
asList
(
gray255
,
gray128
);
MatOfInt
channels
=
new
MatOfInt
(
1
,
0
,
1
);
MatOfInt
histSize
=
new
MatOfInt
(
1
,
1
0
,
10
);
MatOfFloat
ranges
=
new
MatOfFloat
(
1
,
0
f
,
256
f
,
0
f
,
256
f
);
MatOfInt
channels
=
new
MatOfInt
(
0
,
1
);
MatOfInt
histSize
=
new
MatOfInt
(
10
,
10
);
MatOfFloat
ranges
=
new
MatOfFloat
(
0
f
,
256
f
,
0
f
,
256
f
);
Mat
hist
=
new
Mat
();
Imgproc
.
calcHist
(
images
,
channels
,
new
Mat
(),
hist
,
histSize
,
ranges
,
true
);
...
...
@@ -382,28 +383,68 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testConvexHullMatMat
()
{
Mat
points
=
new
Mat
(
1
,
6
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
2
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
1
,
3
,
1
);
MatOfPoint
points
=
new
MatOfPoint
(
new
Point
(
20
,
0
),
new
Point
(
40
,
0
),
new
Point
(
30
,
20
),
new
Point
(
0
,
20
),
new
Point
(
20
,
10
),
new
Point
(
30
,
10
)
);
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
);
MatOfPoint
expHull
=
new
MatOfPoint
(
new
Point
(
40
,
0
),
new
Point
(
30
,
20
),
new
Point
(
0
,
20
),
new
Point
(
20
,
0
)
);
assertMatEqual
(
expHull
,
dst
,
EPS
);
}
public
void
testConvexHullMatMatBooleanBoolean
()
{
Mat
points
=
new
Mat
(
1
,
6
,
CvType
.
CV_32FC2
);
points
.
put
(
0
,
0
,
2
,
0
,
4
,
0
,
3
,
2
,
0
,
2
,
2
,
1
,
3
,
1
);
MatOfPoint
points
=
new
MatOfPoint
(
new
Point
(
2
,
0
),
new
Point
(
4
,
0
),
new
Point
(
3
,
2
),
new
Point
(
0
,
2
),
new
Point
(
2
,
1
),
new
Point
(
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
);
MatOfPoint
expHull
=
new
MatOfPoint
(
new
Point
(
0
,
2
),
new
Point
(
3
,
2
),
new
Point
(
4
,
0
),
new
Point
(
2
,
0
)
);
assertMatEqual
(
expHull
,
dst
,
EPS
);
}
public
void
testConvexityDefects
()
{
MatOfPoint
points
=
new
MatOfPoint
(
new
Point
(
20
,
0
),
new
Point
(
40
,
0
),
new
Point
(
30
,
20
),
new
Point
(
0
,
20
),
new
Point
(
20
,
10
),
new
Point
(
30
,
10
)
);
MatOfPoint
hull
=
new
MatOfPoint
();
Imgproc
.
convexHull
(
points
,
hull
,
false
,
false
);
MatOfInt4
convexityDefects
=
new
MatOfInt4
();
Imgproc
.
convexityDefects
(
points
,
hull
,
convexityDefects
);
assertMatEqual
(
new
MatOfInt4
(
3
,
0
,
5
,
3620
),
convexityDefects
);
}
public
void
testCopyMakeBorderMatMatIntIntIntIntInt
()
{
Mat
src
=
new
Mat
(
imgprocSz
,
imgprocSz
,
CvType
.
CV_32F
,
new
Scalar
(
1
));
int
border
=
2
;
...
...
@@ -1277,11 +1318,11 @@ public class ImgprocTest extends OpenCVTestCase {
}
public
void
testIsContourConvex
()
{
MatOfPoint
2f
contour1
=
new
MatOfPoint2f
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
4
));
MatOfPoint
contour1
=
new
MatOfPoint
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
4
));
assertFalse
(
Imgproc
.
isContourConvex
(
contour1
));
MatOfPoint
2f
contour2
=
new
MatOfPoint2f
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
6
));
MatOfPoint
contour2
=
new
MatOfPoint
(
new
Point
(
0
,
0
),
new
Point
(
10
,
0
),
new
Point
(
10
,
10
),
new
Point
(
5
,
6
));
assertTrue
(
Imgproc
.
isContourConvex
(
contour2
));
}
...
...
modules/java/android_test/src/org/opencv/test/imgproc/Subdiv2DTest.java
View file @
2513f5d3
package
org
.
opencv
.
test
.
imgproc
;
import
org.opencv.core.MatOfFloat
;
import
org.opencv.core.MatOfFloat
6
;
import
org.opencv.core.Point
;
import
org.opencv.core.Rect
;
import
org.opencv.imgproc.Subdiv2D
;
...
...
@@ -50,7 +50,7 @@ public class Subdiv2DTest extends OpenCVTestCase {
s2d
.
insert
(
new
Point
(
20
,
10
)
);
s2d
.
insert
(
new
Point
(
20
,
20
)
);
s2d
.
insert
(
new
Point
(
10
,
20
)
);
MatOfFloat
triangles
=
new
MatOfFloat
();
MatOfFloat
6
triangles
=
new
MatOfFloat6
();
s2d
.
getTriangleList
(
triangles
);
assertEquals
(
10
,
triangles
.
rows
());
/*
...
...
modules/java/gen_java.py
View file @
2513f5d3
...
...
@@ -209,8 +209,9 @@ type_dict = {
"vector_int"
:
{
"j_type"
:
"MatOfInt"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<int>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_float"
:
{
"j_type"
:
"MatOfFloat"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<float>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_double"
:
{
"j_type"
:
"MatOfDouble"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<double>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Vec4f"
:
{
"j_type"
:
"MatOfFloat"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Vec4f>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Vec6f"
:
{
"j_type"
:
"MatOfFloat"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Vec6f>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Vec4i"
:
{
"j_type"
:
"MatOfInt4"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Vec4i>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Vec4f"
:
{
"j_type"
:
"MatOfFloat4"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Vec4f>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Vec6f"
:
{
"j_type"
:
"MatOfFloat6"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Vec6f>
%(n)
s"
,
"suffix"
:
"J"
},
"vector_Mat"
:
{
"j_type"
:
"List<Mat>"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector<Mat>
%(n)
s"
,
"suffix"
:
"J"
},
...
...
@@ -219,6 +220,7 @@ type_dict = {
"vector_vector_char"
:
{
"j_type"
:
"List<MatOfByte>"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector< vector<char> >
%(n)
s"
},
"vector_vector_Point"
:
{
"j_type"
:
"List<MatOfPoint>"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector< vector<Point> >
%(n)
s"
},
"vector_vector_Point2f"
:
{
"j_type"
:
"List<MatOfPoint2f>"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector< vector<Point2f> >
%(n)
s"
},
"vector_vector_Point3f"
:
{
"j_type"
:
"List<MatOfPoint3f>"
,
"jn_type"
:
"long"
,
"jni_type"
:
"jlong"
,
"jni_var"
:
"vector< vector<Point3f> >
%(n)
s"
},
"Mat"
:
{
"j_type"
:
"Mat"
,
"jn_type"
:
"long"
,
"jn_args"
:
((
"__int64"
,
".nativeObj"
),),
"jni_var"
:
"Mat&
%(n)
s = *((Mat*)
%(n)
s_nativeObj)"
,
...
...
@@ -505,8 +507,10 @@ func_arg_fix = {
'cornerSubPix'
:
{
'corners'
:
'vector_Point2f'
,
},
'minEnclosingCircle'
:
{
'points'
:
'vector_Point2f'
,
},
'findHomography'
:
{
'srcPoints'
:
'vector_Point2f'
,
'dstPoints'
:
'vector_Point2f'
,
},
'solvePnP'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
},
'solvePnPRansac'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
},
'solvePnP'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
'distCoeffs'
:
'vector_double'
},
'solvePnPRansac'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
'distCoeffs'
:
'vector_double'
},
'calcOpticalFlowPyrLK'
:
{
'prevPts'
:
'vector_Point2f'
,
'nextPts'
:
'vector_Point2f'
,
'status'
:
'vector_uchar'
,
'err'
:
'vector_float'
,
},
'fitEllipse'
:
{
'points'
:
'vector_Point2f'
,
},
...
...
@@ -526,8 +530,14 @@ func_arg_fix = {
'meanStdDev'
:
{
'mean'
:
'vector_double'
,
'stddev'
:
'vector_double'
},
'drawContours'
:
{
'contours'
:
'vector_vector_Point'
},
'findContours'
:
{
'contours'
:
'vector_vector_Point'
},
'convexityDefects'
:
{
'contour'
:
'vector_Point'
},
'isContourConvex'
:
{
'contour'
:
'vector_Point2f'
,
},
'convexityDefects'
:
{
'contour'
:
'vector_Point'
,
'convexityDefects'
:
'vector_Vec4i'
},
'isContourConvex'
:
{
'contour'
:
'vector_Point'
,
},
'convexHull'
:
{
'points'
:
'vector_Point'
},
'projectPoints'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
'distCoeffs'
:
'vector_double'
},
'initCameraMatrix2D'
:
{
'objectPoints'
:
'vector_vector_Point3f'
,
'imagePoints'
:
'vector_vector_Point2f'
,
},
'findChessboardCorners'
:
{
'corners'
:
'vector_Point2f'
},
'drawChessboardCorners'
:
{
'corners'
:
'vector_Point2f'
},
},
# '', i.e. no class
}
# func_arg_fix
...
...
@@ -903,15 +913,22 @@ extern "C" {
def
get_imports
(
self
,
scope_classname
,
ctype
):
imports
=
self
.
classes
[
scope_classname
or
self
.
Module
]
.
imports
if
ctype
.
startswith
(
'vector_vector'
):
imports
.
add
(
"org.opencv.core.Mat"
)
imports
.
add
(
"java.util.List"
)
imports
.
add
(
"org.opencv.utils.Converters"
)
self
.
get_imports
(
scope_classname
,
ctype
.
replace
(
'vector_vector'
,
'vector'
))
return
if
ctype
.
startswith
(
'vector'
):
imports
.
add
(
"org.opencv.core.Mat"
)
if
type_dict
[
ctype
][
'j_type'
]
.
startswith
(
'MatOf'
):
imports
.
add
(
"org.opencv.core."
+
type_dict
[
ctype
][
'j_type'
])
return
#TMP
return
else
:
imports
.
add
(
"java.util.List"
)
imports
.
add
(
"org.opencv.utils.Converters"
)
ctype
=
ctype
.
replace
(
'vector_'
,
''
)
self
.
get_imports
(
scope_classname
,
ctype
.
replace
(
'vector_'
,
''
))
return
j_type
=
''
if
ctype
in
type_dict
:
j_type
=
type_dict
[
ctype
][
'j_type'
]
...
...
@@ -919,6 +936,7 @@ extern "C" {
imports
.
add
(
"org.opencv.core."
+
j_type
)
if
j_type
==
'String'
:
imports
.
add
(
"java.lang.String"
)
return
...
...
@@ -1083,13 +1101,7 @@ extern "C" {
tail
=
")"
j_type
=
type_dict
[
ret_type
][
"j_type"
]
if
j_type
.
startswith
(
'MatOf'
):
ret_val
+=
"new "
+
j_type
+
"("
m_t
=
re
.
match
(
'vector_(
\
w+)'
,
ret_type
)
m_ch
=
re
.
match
(
'vector_Vec(
\
d+)'
,
ret_type
)
if
m_ch
:
ret_val
+=
m_ch
.
group
(
1
)
+
', '
elif
m_t
.
group
(
1
)
in
(
'char'
,
'uchar'
,
'int'
,
'float'
,
'double'
):
ret_val
+=
'1, '
ret_val
+=
j_type
+
".fromNativeAddr("
else
:
ret_val
=
"Mat retValMat = new Mat("
j_prologue
.
append
(
j_type
+
' retVal = new Array'
+
j_type
+
'();'
)
...
...
modules/java/src/cpp/converters.cpp
View file @
2513f5d3
...
...
@@ -281,6 +281,32 @@ void Mat_to_vector_vector_Point(Mat& mat, vector< vector< Point > >& vv_pt)
}
}
void
Mat_to_vector_vector_Point2f
(
Mat
&
mat
,
vector
<
vector
<
Point2f
>
>&
vv_pt
)
{
vector
<
Mat
>
vm
;
vm
.
reserve
(
mat
.
rows
);
Mat_to_vector_Mat
(
mat
,
vm
);
for
(
size_t
i
=
0
;
i
<
vm
.
size
();
i
++
)
{
vector
<
Point2f
>
vpt
;
Mat_to_vector_Point2f
(
vm
[
i
],
vpt
);
vv_pt
.
push_back
(
vpt
);
}
}
void
Mat_to_vector_vector_Point3f
(
Mat
&
mat
,
vector
<
vector
<
Point3f
>
>&
vv_pt
)
{
vector
<
Mat
>
vm
;
vm
.
reserve
(
mat
.
rows
);
Mat_to_vector_Mat
(
mat
,
vm
);
for
(
size_t
i
=
0
;
i
<
vm
.
size
();
i
++
)
{
vector
<
Point3f
>
vpt
;
Mat_to_vector_Point3f
(
vm
[
i
],
vpt
);
vv_pt
.
push_back
(
vpt
);
}
}
#ifdef HAVE_OPENCV_FEATURES2D
void
Mat_to_vector_vector_KeyPoint
(
Mat
&
mat
,
vector
<
vector
<
KeyPoint
>
>&
vv_kp
)
{
...
...
@@ -361,6 +387,19 @@ void vector_vector_char_to_Mat(vector< vector< char > >& vv_ch, Mat& mat)
vector_Mat_to_Mat
(
vm
,
mat
);
}
void
vector_vector_Point_to_Mat
(
vector
<
vector
<
Point
>
>&
vv_pt
,
Mat
&
mat
)
{
vector
<
Mat
>
vm
;
vm
.
reserve
(
vv_pt
.
size
()
);
for
(
size_t
i
=
0
;
i
<
vv_pt
.
size
();
i
++
)
{
Mat
m
;
vector_Point_to_Mat
(
vv_pt
[
i
],
m
);
vm
.
push_back
(
m
);
}
vector_Mat_to_Mat
(
vm
,
mat
);
}
void
vector_vector_Point2f_to_Mat
(
vector
<
vector
<
Point2f
>
>&
vv_pt
,
Mat
&
mat
)
{
vector
<
Mat
>
vm
;
...
...
@@ -374,19 +413,24 @@ void vector_vector_Point2f_to_Mat(vector< vector< Point2f > >& vv_pt, Mat& mat)
vector_Mat_to_Mat
(
vm
,
mat
);
}
void
vector_vector_Point
_to_Mat
(
vector
<
vector
<
Point
>
>&
vv_pt
,
Mat
&
mat
)
void
vector_vector_Point
3f_to_Mat
(
vector
<
vector
<
Point3f
>
>&
vv_pt
,
Mat
&
mat
)
{
vector
<
Mat
>
vm
;
vm
.
reserve
(
vv_pt
.
size
()
);
for
(
size_t
i
=
0
;
i
<
vv_pt
.
size
();
i
++
)
{
Mat
m
;
vector_Point_to_Mat
(
vv_pt
[
i
],
m
);
vector_Point
3f
_to_Mat
(
vv_pt
[
i
],
m
);
vm
.
push_back
(
m
);
}
vector_Mat_to_Mat
(
vm
,
mat
);
}
void
vector_Vec4i_to_Mat
(
vector
<
Vec4i
>&
v_vec
,
Mat
&
mat
)
{
mat
=
Mat
(
v_vec
,
true
);
}
void
vector_Vec4f_to_Mat
(
vector
<
Vec4f
>&
v_vec
,
Mat
&
mat
)
{
mat
=
Mat
(
v_vec
,
true
);
...
...
modules/java/src/cpp/converters.h
View file @
2513f5d3
...
...
@@ -37,6 +37,7 @@ void vector_Point3i_to_Mat(std::vector<cv::Point3i>& v_point, cv::Mat& mat);
void
vector_Point3f_to_Mat
(
std
::
vector
<
cv
::
Point3f
>&
v_point
,
cv
::
Mat
&
mat
);
void
vector_Point3d_to_Mat
(
std
::
vector
<
cv
::
Point3d
>&
v_point
,
cv
::
Mat
&
mat
);
void
vector_Vec4i_to_Mat
(
std
::
vector
<
cv
::
Vec4i
>&
v_vec
,
cv
::
Mat
&
mat
);
void
vector_Vec4f_to_Mat
(
std
::
vector
<
cv
::
Vec4f
>&
v_vec
,
cv
::
Mat
&
mat
);
void
vector_Vec6f_to_Mat
(
std
::
vector
<
cv
::
Vec6f
>&
v_vec
,
cv
::
Mat
&
mat
);
...
...
@@ -63,6 +64,10 @@ void Mat_to_vector_vector_char(cv::Mat& mat, std::vector< std::vector< char > >&
void
vector_vector_char_to_Mat
(
std
::
vector
<
std
::
vector
<
char
>
>&
vv_ch
,
cv
::
Mat
&
mat
);
void
Mat_to_vector_vector_Point
(
cv
::
Mat
&
mat
,
std
::
vector
<
std
::
vector
<
cv
::
Point
>
>&
vv_pt
);
void
vector_vector_Point2f_to_Mat
(
std
::
vector
<
std
::
vector
<
cv
::
Point2f
>
>&
vv_pt
,
cv
::
Mat
&
mat
);
void
vector_vector_Point_to_Mat
(
std
::
vector
<
std
::
vector
<
cv
::
Point
>
>&
vv_pt
,
cv
::
Mat
&
mat
);
void
Mat_to_vector_vector_Point2f
(
cv
::
Mat
&
mat
,
std
::
vector
<
std
::
vector
<
cv
::
Point2f
>
>&
vv_pt
);
void
vector_vector_Point2f_to_Mat
(
std
::
vector
<
std
::
vector
<
cv
::
Point2f
>
>&
vv_pt
,
cv
::
Mat
&
mat
);
void
Mat_to_vector_vector_Point3f
(
cv
::
Mat
&
mat
,
std
::
vector
<
std
::
vector
<
cv
::
Point3f
>
>&
vv_pt
);
void
vector_vector_Point3f_to_Mat
(
std
::
vector
<
std
::
vector
<
cv
::
Point3f
>
>&
vv_pt
,
cv
::
Mat
&
mat
);
modules/java/src/java/core+MatOfByte.java
View file @
2513f5d3
...
...
@@ -6,36 +6,32 @@ import java.util.List;
public
class
MatOfByte
extends
Mat
{
// 8UC(x)
private
static
final
int
_depth
=
CvType
.
CV_8U
;
private
final
int
_channels
;
public
MatOfByte
(
int
channels
)
{
super
();
_channels
=
channels
;
}
private
static
final
int
_channels
=
1
;
public
MatOfByte
()
{
this
(
1
);
super
(
);
}
p
ublic
MatOfByte
(
int
channels
,
long
addr
)
{
p
rotected
MatOfByte
(
long
addr
)
{
super
(
addr
);
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfByte
(
int
channels
,
Mat
m
)
{
public
static
MatOfByte
fromNativeAddr
(
long
addr
)
{
return
new
MatOfByte
(
addr
);
}
public
MatOfByte
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfByte
(
int
channels
,
byte
...
a
)
{
public
MatOfByte
(
byte
...
a
)
{
super
();
_channels
=
channels
;
fromArray
(
a
);
}
...
...
@@ -53,7 +49,9 @@ public class MatOfByte extends Mat {
}
public
byte
[]
toArray
()
{
int
num
=
(
int
)
total
();
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
byte
[]
a
=
new
byte
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
...
...
@@ -64,7 +62,7 @@ public class MatOfByte extends Mat {
public
void
fromList
(
List
<
Byte
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Byte
ab
[]
=
lb
.
toArray
(
null
);
Byte
ab
[]
=
lb
.
toArray
(
new
Byte
[
0
]
);
byte
a
[]
=
new
byte
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
...
...
modules/java/src/java/core+MatOfDMatch.java
View file @
2513f5d3
...
...
@@ -14,13 +14,17 @@ public class MatOfDMatch extends Mat {
super
();
}
p
ublic
MatOfDMatch
(
long
addr
)
{
p
rotected
MatOfDMatch
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfDMatch
fromNativeAddr
(
long
addr
)
{
return
new
MatOfDMatch
(
addr
);
}
public
MatOfDMatch
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -68,7 +72,7 @@ public class MatOfDMatch extends Mat {
}
public
void
fromList
(
List
<
DMatch
>
ldm
)
{
DMatch
adm
[]
=
ldm
.
toArray
(
null
);
DMatch
adm
[]
=
ldm
.
toArray
(
new
DMatch
[
0
]
);
fromArray
(
adm
);
}
...
...
modules/java/src/java/core+MatOfDouble.java
View file @
2513f5d3
...
...
@@ -6,36 +6,32 @@ import java.util.List;
public
class
MatOfDouble
extends
Mat
{
// 64FC(x)
private
static
final
int
_depth
=
CvType
.
CV_64F
;
private
final
int
_channels
;
public
MatOfDouble
(
int
channels
)
{
super
();
_channels
=
channels
;
}
private
static
final
int
_channels
=
1
;
public
MatOfDouble
()
{
this
(
1
);
super
(
);
}
p
ublic
MatOfDouble
(
int
channels
,
long
addr
)
{
p
rotected
MatOfDouble
(
long
addr
)
{
super
(
addr
);
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfDouble
(
int
channels
,
Mat
m
)
{
public
static
MatOfDouble
fromNativeAddr
(
long
addr
)
{
return
new
MatOfDouble
(
addr
);
}
public
MatOfDouble
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfDouble
(
int
channels
,
double
...
a
)
{
public
MatOfDouble
(
double
...
a
)
{
super
();
_channels
=
channels
;
fromArray
(
a
);
}
...
...
@@ -53,7 +49,9 @@ public class MatOfDouble extends Mat {
}
public
double
[]
toArray
()
{
int
num
=
(
int
)
total
();
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
double
[]
a
=
new
double
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
...
...
@@ -64,7 +62,7 @@ public class MatOfDouble extends Mat {
public
void
fromList
(
List
<
Double
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Double
ab
[]
=
lb
.
toArray
(
null
);
Double
ab
[]
=
lb
.
toArray
(
new
Double
[
0
]
);
double
a
[]
=
new
double
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
...
...
modules/java/src/java/core+MatOfFloat.java
View file @
2513f5d3
...
...
@@ -4,38 +4,34 @@ import java.util.Arrays;
import
java.util.List
;
public
class
MatOfFloat
extends
Mat
{
// 32FC(x)
// 32FC1
private
static
final
int
_depth
=
CvType
.
CV_32F
;
private
final
int
_channels
;
public
MatOfFloat
(
int
channels
)
{
super
();
_channels
=
channels
;
}
private
static
final
int
_channels
=
1
;
public
MatOfFloat
()
{
this
(
1
);
super
(
);
}
p
ublic
MatOfFloat
(
int
channels
,
long
addr
)
{
p
rotected
MatOfFloat
(
long
addr
)
{
super
(
addr
);
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfFloat
(
int
channels
,
Mat
m
)
{
public
static
MatOfFloat
fromNativeAddr
(
long
addr
)
{
return
new
MatOfFloat
(
addr
);
}
public
MatOfFloat
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfFloat
(
int
channels
,
float
...
a
)
{
public
MatOfFloat
(
float
...
a
)
{
super
();
_channels
=
channels
;
fromArray
(
a
);
}
...
...
@@ -53,7 +49,9 @@ public class MatOfFloat extends Mat {
}
public
float
[]
toArray
()
{
int
num
=
(
int
)
total
();
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
float
[]
a
=
new
float
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
...
...
@@ -64,7 +62,7 @@ public class MatOfFloat extends Mat {
public
void
fromList
(
List
<
Float
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Float
ab
[]
=
lb
.
toArray
(
null
);
Float
ab
[]
=
lb
.
toArray
(
new
Float
[
0
]
);
float
a
[]
=
new
float
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
...
...
modules/java/src/java/core+MatOfFloat4.java
0 → 100644
View file @
2513f5d3
package
org
.
opencv
.
core
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
MatOfFloat4
extends
Mat
{
// 32FC4
private
static
final
int
_depth
=
CvType
.
CV_32F
;
private
static
final
int
_channels
=
4
;
public
MatOfFloat4
()
{
super
();
}
protected
MatOfFloat4
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfFloat4
fromNativeAddr
(
long
addr
)
{
return
new
MatOfFloat4
(
addr
);
}
public
MatOfFloat4
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfFloat4
(
float
...
a
)
{
super
();
fromArray
(
a
);
}
public
void
alloc
(
int
elemNumber
)
{
if
(
elemNumber
>
0
)
super
.
create
(
elemNumber
,
1
,
CvType
.
makeType
(
_depth
,
_channels
));
}
public
void
fromArray
(
float
...
a
)
{
if
(
a
==
null
||
a
.
length
==
0
)
return
;
int
num
=
a
.
length
/
_channels
;
alloc
(
num
);
put
(
0
,
0
,
a
);
//TODO: check ret val!
}
public
float
[]
toArray
()
{
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
float
[]
a
=
new
float
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
get
(
0
,
0
,
a
);
//TODO: check ret val!
return
a
;
}
public
void
fromList
(
List
<
Float
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Float
ab
[]
=
lb
.
toArray
(
new
Float
[
0
]);
float
a
[]
=
new
float
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
fromArray
(
a
);
}
public
List
<
Float
>
toList
()
{
float
[]
a
=
toArray
();
Float
ab
[]
=
new
Float
[
a
.
length
];
for
(
int
i
=
0
;
i
<
a
.
length
;
i
++)
ab
[
i
]
=
a
[
i
];
return
Arrays
.
asList
(
ab
);
}
}
modules/java/src/java/core+MatOfFloat6.java
0 → 100644
View file @
2513f5d3
package
org
.
opencv
.
core
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
MatOfFloat6
extends
Mat
{
// 32FC6
private
static
final
int
_depth
=
CvType
.
CV_32F
;
private
static
final
int
_channels
=
6
;
public
MatOfFloat6
()
{
super
();
}
protected
MatOfFloat6
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfFloat6
fromNativeAddr
(
long
addr
)
{
return
new
MatOfFloat6
(
addr
);
}
public
MatOfFloat6
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfFloat6
(
float
...
a
)
{
super
();
fromArray
(
a
);
}
public
void
alloc
(
int
elemNumber
)
{
if
(
elemNumber
>
0
)
super
.
create
(
elemNumber
,
1
,
CvType
.
makeType
(
_depth
,
_channels
));
}
public
void
fromArray
(
float
...
a
)
{
if
(
a
==
null
||
a
.
length
==
0
)
return
;
int
num
=
a
.
length
/
_channels
;
alloc
(
num
);
put
(
0
,
0
,
a
);
//TODO: check ret val!
}
public
float
[]
toArray
()
{
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
float
[]
a
=
new
float
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
get
(
0
,
0
,
a
);
//TODO: check ret val!
return
a
;
}
public
void
fromList
(
List
<
Float
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Float
ab
[]
=
lb
.
toArray
(
new
Float
[
0
]);
float
a
[]
=
new
float
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
fromArray
(
a
);
}
public
List
<
Float
>
toList
()
{
float
[]
a
=
toArray
();
Float
ab
[]
=
new
Float
[
a
.
length
];
for
(
int
i
=
0
;
i
<
a
.
length
;
i
++)
ab
[
i
]
=
a
[
i
];
return
Arrays
.
asList
(
ab
);
}
}
modules/java/src/java/core+MatOfInt.java
View file @
2513f5d3
...
...
@@ -5,38 +5,34 @@ import java.util.List;
public
class
MatOfInt
extends
Mat
{
// 32SC(x)
// 32SC1
private
static
final
int
_depth
=
CvType
.
CV_32S
;
private
final
int
_channels
;
public
MatOfInt
(
int
channels
)
{
super
();
_channels
=
channels
;
}
private
static
final
int
_channels
=
1
;
public
MatOfInt
()
{
this
(
1
);
super
(
);
}
p
ublic
MatOfInt
(
int
channels
,
long
addr
)
{
p
rotected
MatOfInt
(
long
addr
)
{
super
(
addr
);
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfInt
(
int
channels
,
Mat
m
)
{
public
static
MatOfInt
fromNativeAddr
(
long
addr
)
{
return
new
MatOfInt
(
addr
);
}
public
MatOfInt
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
_channels
=
channels
;
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfInt
(
int
channels
,
int
...
a
)
{
public
MatOfInt
(
int
...
a
)
{
super
();
_channels
=
channels
;
fromArray
(
a
);
}
...
...
@@ -54,7 +50,9 @@ public class MatOfInt extends Mat {
}
public
int
[]
toArray
()
{
int
num
=
(
int
)
total
();
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
int
[]
a
=
new
int
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
...
...
@@ -65,7 +63,7 @@ public class MatOfInt extends Mat {
public
void
fromList
(
List
<
Integer
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Integer
ab
[]
=
lb
.
toArray
(
null
);
Integer
ab
[]
=
lb
.
toArray
(
new
Integer
[
0
]
);
int
a
[]
=
new
int
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
...
...
modules/java/src/java/core+MatOfInt4.java
0 → 100644
View file @
2513f5d3
package
org
.
opencv
.
core
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
MatOfInt4
extends
Mat
{
// 32SC4
private
static
final
int
_depth
=
CvType
.
CV_32S
;
private
static
final
int
_channels
=
4
;
public
MatOfInt4
()
{
super
();
}
protected
MatOfInt4
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfInt4
fromNativeAddr
(
long
addr
)
{
return
new
MatOfInt4
(
addr
);
}
public
MatOfInt4
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
MatOfInt4
(
int
...
a
)
{
super
();
fromArray
(
a
);
}
public
void
alloc
(
int
elemNumber
)
{
if
(
elemNumber
>
0
)
super
.
create
(
elemNumber
,
1
,
CvType
.
makeType
(
_depth
,
_channels
));
}
public
void
fromArray
(
int
...
a
)
{
if
(
a
==
null
||
a
.
length
==
0
)
return
;
int
num
=
a
.
length
/
_channels
;
alloc
(
num
);
put
(
0
,
0
,
a
);
//TODO: check ret val!
}
public
int
[]
toArray
()
{
int
num
=
checkVector
(
_channels
,
_depth
);
if
(
num
<
0
)
throw
new
RuntimeException
(
"Native Mat has unexpected type or size: "
+
toString
());
int
[]
a
=
new
int
[
num
*
_channels
];
if
(
num
==
0
)
return
a
;
get
(
0
,
0
,
a
);
//TODO: check ret val!
return
a
;
}
public
void
fromList
(
List
<
Integer
>
lb
)
{
if
(
lb
==
null
||
lb
.
size
()==
0
)
return
;
Integer
ab
[]
=
lb
.
toArray
(
new
Integer
[
0
]);
int
a
[]
=
new
int
[
ab
.
length
];
for
(
int
i
=
0
;
i
<
ab
.
length
;
i
++)
a
[
i
]
=
ab
[
i
];
fromArray
(
a
);
}
public
List
<
Integer
>
toList
()
{
int
[]
a
=
toArray
();
Integer
ab
[]
=
new
Integer
[
a
.
length
];
for
(
int
i
=
0
;
i
<
a
.
length
;
i
++)
ab
[
i
]
=
a
[
i
];
return
Arrays
.
asList
(
ab
);
}
}
modules/java/src/java/core+MatOfKeyPoint.java
View file @
2513f5d3
...
...
@@ -14,13 +14,17 @@ public class MatOfKeyPoint extends Mat {
super
();
}
p
ublic
MatOfKeyPoint
(
long
addr
)
{
p
rotected
MatOfKeyPoint
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfKeyPoint
fromNativeAddr
(
long
addr
)
{
return
new
MatOfKeyPoint
(
addr
);
}
public
MatOfKeyPoint
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -71,7 +75,7 @@ public class MatOfKeyPoint extends Mat {
}
public
void
fromList
(
List
<
KeyPoint
>
lkp
)
{
KeyPoint
akp
[]
=
lkp
.
toArray
(
null
);
KeyPoint
akp
[]
=
lkp
.
toArray
(
new
KeyPoint
[
0
]
);
fromArray
(
akp
);
}
...
...
modules/java/src/java/core+MatOfPoint.java
View file @
2513f5d3
...
...
@@ -12,13 +12,17 @@ public class MatOfPoint extends Mat {
super
();
}
p
ublic
MatOfPoint
(
long
addr
)
{
p
rotected
MatOfPoint
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfPoint
fromNativeAddr
(
long
addr
)
{
return
new
MatOfPoint
(
addr
);
}
public
MatOfPoint
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -63,7 +67,7 @@ public class MatOfPoint extends Mat {
}
public
void
fromList
(
List
<
Point
>
lp
)
{
Point
ap
[]
=
lp
.
toArray
(
null
);
Point
ap
[]
=
lp
.
toArray
(
new
Point
[
0
]
);
fromArray
(
ap
);
}
...
...
modules/java/src/java/core+MatOfPoint2f.java
View file @
2513f5d3
...
...
@@ -12,13 +12,17 @@ public class MatOfPoint2f extends Mat {
super
();
}
p
ublic
MatOfPoint2f
(
long
addr
)
{
p
rotected
MatOfPoint2f
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfPoint2f
fromNativeAddr
(
long
addr
)
{
return
new
MatOfPoint2f
(
addr
);
}
public
MatOfPoint2f
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -63,7 +67,7 @@ public class MatOfPoint2f extends Mat {
}
public
void
fromList
(
List
<
Point
>
lp
)
{
Point
ap
[]
=
lp
.
toArray
(
null
);
Point
ap
[]
=
lp
.
toArray
(
new
Point
[
0
]
);
fromArray
(
ap
);
}
...
...
modules/java/src/java/core+MatOfPoint3.java
View file @
2513f5d3
...
...
@@ -12,13 +12,17 @@ public class MatOfPoint3 extends Mat {
super
();
}
p
ublic
MatOfPoint3
(
long
addr
)
{
p
rotected
MatOfPoint3
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfPoint3
fromNativeAddr
(
long
addr
)
{
return
new
MatOfPoint3
(
addr
);
}
public
MatOfPoint3
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -64,7 +68,7 @@ public class MatOfPoint3 extends Mat {
}
public
void
fromList
(
List
<
Point3
>
lp
)
{
Point3
ap
[]
=
lp
.
toArray
(
null
);
Point3
ap
[]
=
lp
.
toArray
(
new
Point3
[
0
]
);
fromArray
(
ap
);
}
...
...
modules/java/src/java/core+MatOfPoint3f.java
View file @
2513f5d3
...
...
@@ -12,13 +12,17 @@ public class MatOfPoint3f extends Mat {
super
();
}
p
ublic
MatOfPoint3f
(
long
addr
)
{
p
rotected
MatOfPoint3f
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfPoint3f
fromNativeAddr
(
long
addr
)
{
return
new
MatOfPoint3f
(
addr
);
}
public
MatOfPoint3f
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -64,7 +68,7 @@ public class MatOfPoint3f extends Mat {
}
public
void
fromList
(
List
<
Point3
>
lp
)
{
Point3
ap
[]
=
lp
.
toArray
(
null
);
Point3
ap
[]
=
lp
.
toArray
(
new
Point3
[
0
]
);
fromArray
(
ap
);
}
...
...
modules/java/src/java/core+MatOfRect.java
View file @
2513f5d3
...
...
@@ -13,13 +13,17 @@ public class MatOfRect extends Mat {
super
();
}
p
ublic
MatOfRect
(
long
addr
)
{
p
rotected
MatOfRect
(
long
addr
)
{
super
(
addr
);
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
throw
new
IllegalArgumentException
(
"Incomatible Mat"
);
//FIXME: do we need release() here?
}
public
static
MatOfRect
fromNativeAddr
(
long
addr
)
{
return
new
MatOfRect
(
addr
);
}
public
MatOfRect
(
Mat
m
)
{
super
(
m
,
Range
.
all
());
if
(
checkVector
(
_channels
,
_depth
)
<
0
)
...
...
@@ -66,7 +70,7 @@ public class MatOfRect extends Mat {
return
a
;
}
public
void
fromList
(
List
<
Rect
>
lr
)
{
Rect
ap
[]
=
lr
.
toArray
(
null
);
Rect
ap
[]
=
lr
.
toArray
(
new
Rect
[
0
]
);
fromArray
(
ap
);
}
...
...
modules/java/src/java/utils+Converters.java
View file @
2513f5d3
...
...
@@ -10,6 +10,7 @@ import org.opencv.core.MatOfDMatch;
import
org.opencv.core.MatOfKeyPoint
;
import
org.opencv.core.MatOfPoint
;
import
org.opencv.core.MatOfPoint2f
;
import
org.opencv.core.MatOfPoint3f
;
import
org.opencv.core.Point
;
import
org.opencv.core.Point3
;
import
org.opencv.core.Rect
;
...
...
@@ -519,6 +520,50 @@ public class Converters {
}
}
// vector_vector_Point2f
public
static
Mat
vector_vector_Point2f_to_Mat
(
List
<
MatOfPoint2f
>
pts
,
List
<
Mat
>
mats
)
{
Mat
res
;
int
lCount
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
if
(
lCount
>
0
)
{
for
(
MatOfPoint2f
vpt
:
pts
)
mats
.
add
(
vpt
);
res
=
vector_Mat_to_Mat
(
mats
);
}
else
{
res
=
new
Mat
();
}
return
res
;
}
// vector_vector_Point3f
public
static
void
Mat_to_vector_vector_Point3f
(
Mat
m
,
List
<
MatOfPoint3f
>
pts
)
{
if
(
pts
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
(
"Output List can't be null"
);
if
(
m
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
(
"Input Mat can't be null"
);
List
<
Mat
>
mats
=
new
ArrayList
<
Mat
>(
m
.
rows
());
Mat_to_vector_Mat
(
m
,
mats
);
for
(
Mat
mi
:
mats
)
{
MatOfPoint3f
pt
=
new
MatOfPoint3f
(
mi
);
pts
.
add
(
pt
);
}
}
// vector_vector_Point3f
public
static
Mat
vector_vector_Point3f_to_Mat
(
List
<
MatOfPoint3f
>
pts
,
List
<
Mat
>
mats
)
{
Mat
res
;
int
lCount
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
if
(
lCount
>
0
)
{
for
(
MatOfPoint3f
vpt
:
pts
)
mats
.
add
(
vpt
);
res
=
vector_Mat_to_Mat
(
mats
);
}
else
{
res
=
new
Mat
();
}
return
res
;
}
// vector_vector_KeyPoint
public
static
Mat
vector_vector_KeyPoint_to_Mat
(
List
<
MatOfKeyPoint
>
kps
,
List
<
Mat
>
mats
)
{
Mat
res
;
...
...
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