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
5ebc7f0b
Commit
5ebc7f0b
authored
Dec 15, 2015
by
Maksim Shabunin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simple Moments class for Java
parent
0d9938da
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
293 additions
and
190 deletions
+293
-190
imgproc+Moments.java
modules/imgproc/misc/java/src/java/imgproc+Moments.java
+244
-0
MomentsTest.java
modules/imgproc/misc/java/test/MomentsTest.java
+42
-190
gen_java.py
modules/java/generator/gen_java.py
+7
-0
No files found.
modules/imgproc/misc/java/src/java/imgproc+Moments.java
0 → 100644
View file @
5ebc7f0b
package
org
.
opencv
.
imgproc
;
import
java.lang.Math
;
//javadoc:Moments
public
class
Moments
{
public
double
m00
;
public
double
m10
;
public
double
m01
;
public
double
m20
;
public
double
m11
;
public
double
m02
;
public
double
m30
;
public
double
m21
;
public
double
m12
;
public
double
m03
;
public
double
mu20
;
public
double
mu11
;
public
double
mu02
;
public
double
mu30
;
public
double
mu21
;
public
double
mu12
;
public
double
mu03
;
public
double
nu20
;
public
double
nu11
;
public
double
nu02
;
public
double
nu30
;
public
double
nu21
;
public
double
nu12
;
public
double
nu03
;
public
Moments
(
double
m00
,
double
m10
,
double
m01
,
double
m20
,
double
m11
,
double
m02
,
double
m30
,
double
m21
,
double
m12
,
double
m03
)
{
this
.
m00
=
m00
;
this
.
m10
=
m10
;
this
.
m01
=
m01
;
this
.
m20
=
m20
;
this
.
m11
=
m11
;
this
.
m02
=
m02
;
this
.
m30
=
m30
;
this
.
m21
=
m21
;
this
.
m12
=
m12
;
this
.
m03
=
m03
;
this
.
completeState
();
}
public
Moments
()
{
this
(
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
);
}
public
Moments
(
double
[]
vals
)
{
set
(
vals
);
}
public
void
set
(
double
[]
vals
)
{
if
(
vals
!=
null
)
{
m00
=
vals
.
length
>
0
?
(
int
)
vals
[
0
]
:
0
;
m10
=
vals
.
length
>
1
?
(
int
)
vals
[
1
]
:
0
;
m01
=
vals
.
length
>
2
?
(
int
)
vals
[
2
]
:
0
;
m20
=
vals
.
length
>
3
?
(
int
)
vals
[
3
]
:
0
;
m11
=
vals
.
length
>
4
?
(
int
)
vals
[
4
]
:
0
;
m02
=
vals
.
length
>
5
?
(
int
)
vals
[
5
]
:
0
;
m30
=
vals
.
length
>
6
?
(
int
)
vals
[
6
]
:
0
;
m21
=
vals
.
length
>
7
?
(
int
)
vals
[
7
]
:
0
;
m12
=
vals
.
length
>
8
?
(
int
)
vals
[
8
]
:
0
;
m03
=
vals
.
length
>
9
?
(
int
)
vals
[
9
]
:
0
;
this
.
completeState
();
}
else
{
m00
=
0
;
m10
=
0
;
m01
=
0
;
m20
=
0
;
m11
=
0
;
m02
=
0
;
m30
=
0
;
m21
=
0
;
m12
=
0
;
m03
=
0
;
mu20
=
0
;
mu11
=
0
;
mu02
=
0
;
mu30
=
0
;
mu21
=
0
;
mu12
=
0
;
mu03
=
0
;
nu20
=
0
;
nu11
=
0
;
nu02
=
0
;
nu30
=
0
;
nu21
=
0
;
nu12
=
0
;
nu03
=
0
;
}
}
@Override
public
String
toString
()
{
return
"Moments [ "
+
"\n"
+
"m00="
+
m00
+
", "
+
"\n"
+
"m10="
+
m10
+
", "
+
"m01="
+
m01
+
", "
+
"\n"
+
"m20="
+
m20
+
", "
+
"m11="
+
m11
+
", "
+
"m02="
+
m02
+
", "
+
"\n"
+
"m30="
+
m30
+
", "
+
"m21="
+
m21
+
", "
+
"m12="
+
m12
+
", "
+
"m03="
+
m03
+
", "
+
"\n"
+
"mu20="
+
mu20
+
", "
+
"mu11="
+
mu11
+
", "
+
"mu02="
+
mu02
+
", "
+
"\n"
+
"mu30="
+
mu30
+
", "
+
"mu21="
+
mu21
+
", "
+
"mu12="
+
mu12
+
", "
+
"mu03="
+
mu03
+
", "
+
"\n"
+
"nu20="
+
nu20
+
", "
+
"nu11="
+
nu11
+
", "
+
"nu02="
+
nu02
+
", "
+
"\n"
+
"nu30="
+
nu30
+
", "
+
"nu21="
+
nu21
+
", "
+
"nu12="
+
nu12
+
", "
+
"nu03="
+
nu03
+
", "
+
"\n]"
;
}
protected
void
completeState
()
{
double
cx
=
0
,
cy
=
0
;
double
mu20
,
mu11
,
mu02
;
double
inv_m00
=
0.0
;
if
(
Math
.
abs
(
this
.
m00
)
>
0.00000001
)
{
inv_m00
=
1
.
/
this
.
m00
;
cx
=
this
.
m10
*
inv_m00
;
cy
=
this
.
m01
*
inv_m00
;
}
// mu20 = m20 - m10*cx
mu20
=
this
.
m20
-
this
.
m10
*
cx
;
// mu11 = m11 - m10*cy
mu11
=
this
.
m11
-
this
.
m10
*
cy
;
// mu02 = m02 - m01*cy
mu02
=
this
.
m02
-
this
.
m01
*
cy
;
this
.
mu20
=
mu20
;
this
.
mu11
=
mu11
;
this
.
mu02
=
mu02
;
// mu30 = m30 - cx*(3*mu20 + cx*m10)
this
.
mu30
=
this
.
m30
-
cx
*
(
3
*
mu20
+
cx
*
this
.
m10
);
mu11
+=
mu11
;
// mu21 = m21 - cx*(2*mu11 + cx*m01) - cy*mu20
this
.
mu21
=
this
.
m21
-
cx
*
(
mu11
+
cx
*
this
.
m01
)
-
cy
*
mu20
;
// mu12 = m12 - cy*(2*mu11 + cy*m10) - cx*mu02
this
.
mu12
=
this
.
m12
-
cy
*
(
mu11
+
cy
*
this
.
m10
)
-
cx
*
mu02
;
// mu03 = m03 - cy*(3*mu02 + cy*m01)
this
.
mu03
=
this
.
m03
-
cy
*
(
3
*
mu02
+
cy
*
this
.
m01
);
double
inv_sqrt_m00
=
Math
.
sqrt
(
Math
.
abs
(
inv_m00
));
double
s2
=
inv_m00
*
inv_m00
,
s3
=
s2
*
inv_sqrt_m00
;
this
.
nu20
=
this
.
mu20
*
s2
;
this
.
nu11
=
this
.
mu11
*
s2
;
this
.
nu02
=
this
.
mu02
*
s2
;
this
.
nu30
=
this
.
mu30
*
s3
;
this
.
nu21
=
this
.
mu21
*
s3
;
this
.
nu12
=
this
.
mu12
*
s3
;
this
.
nu03
=
this
.
mu03
*
s3
;
}
public
double
get_m00
()
{
return
this
.
m00
;
}
public
double
get_m10
()
{
return
this
.
m10
;
}
public
double
get_m01
()
{
return
this
.
m01
;
}
public
double
get_m20
()
{
return
this
.
m20
;
}
public
double
get_m11
()
{
return
this
.
m11
;
}
public
double
get_m02
()
{
return
this
.
m02
;
}
public
double
get_m30
()
{
return
this
.
m30
;
}
public
double
get_m21
()
{
return
this
.
m21
;
}
public
double
get_m12
()
{
return
this
.
m12
;
}
public
double
get_m03
()
{
return
this
.
m03
;
}
public
double
get_mu20
()
{
return
this
.
mu20
;
}
public
double
get_mu11
()
{
return
this
.
mu11
;
}
public
double
get_mu02
()
{
return
this
.
mu02
;
}
public
double
get_mu30
()
{
return
this
.
mu30
;
}
public
double
get_mu21
()
{
return
this
.
mu21
;
}
public
double
get_mu12
()
{
return
this
.
mu12
;
}
public
double
get_mu03
()
{
return
this
.
mu03
;
}
public
double
get_nu20
()
{
return
this
.
nu20
;
}
public
double
get_nu11
()
{
return
this
.
nu11
;
}
public
double
get_nu02
()
{
return
this
.
nu02
;
}
public
double
get_nu30
()
{
return
this
.
nu30
;
}
public
double
get_nu21
()
{
return
this
.
nu21
;
}
public
double
get_nu12
()
{
return
this
.
nu12
;
}
public
double
get_nu03
()
{
return
this
.
nu03
;
}
public
void
set_m00
(
double
m00
)
{
this
.
m00
=
m00
;
}
public
void
set_m10
(
double
m10
)
{
this
.
m10
=
m10
;
}
public
void
set_m01
(
double
m01
)
{
this
.
m01
=
m01
;
}
public
void
set_m20
(
double
m20
)
{
this
.
m20
=
m20
;
}
public
void
set_m11
(
double
m11
)
{
this
.
m11
=
m11
;
}
public
void
set_m02
(
double
m02
)
{
this
.
m02
=
m02
;
}
public
void
set_m30
(
double
m30
)
{
this
.
m30
=
m30
;
}
public
void
set_m21
(
double
m21
)
{
this
.
m21
=
m21
;
}
public
void
set_m12
(
double
m12
)
{
this
.
m12
=
m12
;
}
public
void
set_m03
(
double
m03
)
{
this
.
m03
=
m03
;
}
public
void
set_mu20
(
double
mu20
)
{
this
.
mu20
=
mu20
;
}
public
void
set_mu11
(
double
mu11
)
{
this
.
mu11
=
mu11
;
}
public
void
set_mu02
(
double
mu02
)
{
this
.
mu02
=
mu02
;
}
public
void
set_mu30
(
double
mu30
)
{
this
.
mu30
=
mu30
;
}
public
void
set_mu21
(
double
mu21
)
{
this
.
mu21
=
mu21
;
}
public
void
set_mu12
(
double
mu12
)
{
this
.
mu12
=
mu12
;
}
public
void
set_mu03
(
double
mu03
)
{
this
.
mu03
=
mu03
;
}
public
void
set_nu20
(
double
nu20
)
{
this
.
nu20
=
nu20
;
}
public
void
set_nu11
(
double
nu11
)
{
this
.
nu11
=
nu11
;
}
public
void
set_nu02
(
double
nu02
)
{
this
.
nu02
=
nu02
;
}
public
void
set_nu30
(
double
nu30
)
{
this
.
nu30
=
nu30
;
}
public
void
set_nu21
(
double
nu21
)
{
this
.
nu21
=
nu21
;
}
public
void
set_nu12
(
double
nu12
)
{
this
.
nu12
=
nu12
;
}
public
void
set_nu03
(
double
nu03
)
{
this
.
nu03
=
nu03
;
}
}
modules/imgproc/misc/java/test/MomentsTest.java
View file @
5ebc7f0b
package
org
.
opencv
.
test
.
imgproc
;
import
org.opencv.test.OpenCVTestCase
;
import
org.opencv.core.Core
;
import
org.opencv.core.Mat
;
import
org.opencv.core.CvType
;
import
org.opencv.core.Scalar
;
import
org.opencv.imgproc.Imgproc
;
import
org.opencv.imgproc.Moments
;
public
class
MomentsTest
extends
OpenCVTestCase
{
public
void
testGet_m00
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m01
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m10
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_m30
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_mu30
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testGet_nu30
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m00
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m01
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m10
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_m30
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_mu30
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu02
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu03
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu11
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu12
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu20
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu21
()
{
fail
(
"Not yet implemented"
);
}
public
void
testSet_nu30
()
{
fail
(
"Not yet implemented"
);
Mat
data
;
@Override
protected
void
setUp
()
throws
Exception
{
super
.
setUp
();
data
=
new
Mat
(
3
,
3
,
CvType
.
CV_8UC1
,
new
Scalar
(
1
));
data
.
row
(
1
).
setTo
(
new
Scalar
(
5
));
}
public
void
testAll
()
{
Moments
res
=
Imgproc
.
moments
(
data
);
assertEquals
(
res
.
m00
,
21.0
,
EPS
);
assertEquals
(
res
.
m10
,
21.0
,
EPS
);
assertEquals
(
res
.
m01
,
21.0
,
EPS
);
assertEquals
(
res
.
m20
,
35.0
,
EPS
);
assertEquals
(
res
.
m11
,
21.0
,
EPS
);
assertEquals
(
res
.
m02
,
27.0
,
EPS
);
assertEquals
(
res
.
m30
,
63.0
,
EPS
);
assertEquals
(
res
.
m21
,
35.0
,
EPS
);
assertEquals
(
res
.
m12
,
27.0
,
EPS
);
assertEquals
(
res
.
m03
,
39.0
,
EPS
);
assertEquals
(
res
.
mu20
,
14.0
,
EPS
);
assertEquals
(
res
.
mu11
,
0.0
,
EPS
);
assertEquals
(
res
.
mu02
,
6.0
,
EPS
);
assertEquals
(
res
.
mu30
,
0.0
,
EPS
);
assertEquals
(
res
.
mu21
,
0.0
,
EPS
);
assertEquals
(
res
.
mu12
,
0.0
,
EPS
);
assertEquals
(
res
.
mu03
,
0.0
,
EPS
);
assertEquals
(
res
.
nu20
,
0.031746031746031744
,
EPS
);
assertEquals
(
res
.
nu11
,
0.0
,
EPS
);
assertEquals
(
res
.
nu02
,
0.013605442176870746
,
EPS
);
assertEquals
(
res
.
nu30
,
0.0
,
EPS
);
assertEquals
(
res
.
nu21
,
0.0
,
EPS
);
assertEquals
(
res
.
nu12
,
0.0
,
EPS
);
assertEquals
(
res
.
nu03
,
0.0
,
EPS
);
}
}
modules/java/generator/gen_java.py
View file @
5ebc7f0b
...
...
@@ -299,6 +299,13 @@ type_dict = {
"jn_type"
:
"double[]"
,
"jni_var"
:
"Vec3d
%(n)
s(
%(n)
s_val0,
%(n)
s_val1,
%(n)
s_val2)"
,
"jni_type"
:
"jdoubleArray"
,
"suffix"
:
"DDD"
},
"Moments"
:
{
"j_type"
:
"Moments"
,
"jn_args"
:
((
"double"
,
".m00"
),
(
"double"
,
".m10"
),
(
"double"
,
".m01"
),
(
"double"
,
".m20"
),
(
"double"
,
".m11"
),
(
"double"
,
".m02"
),
(
"double"
,
".m30"
),
(
"double"
,
".m21"
),
(
"double"
,
".m12"
),
(
"double"
,
".m03"
)),
"jni_var"
:
"Moments
%(n)
s(
%(n)
s_m00,
%(n)
s_m10,
%(n)
s_m01,
%(n)
s_m20,
%(n)
s_m11,
%(n)
s_m02,
%(n)
s_m30,
%(n)
s_m21,
%(n)
s_m12,
%(n)
s_m03)"
,
"jni_type"
:
"jdoubleArray"
,
"suffix"
:
"DDDDDDDDDD"
},
}
...
...
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