Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
3c6aa650
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3c6aa650
编写于
12月 16, 2015
作者:
M
Maksim Shabunin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5811 from mshabunin:fix-java-moments
上级
b2bb7d07
5ebc7f0b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
293 addition
and
190 deletion
+293
-190
modules/imgproc/misc/java/src/java/imgproc+Moments.java
modules/imgproc/misc/java/src/java/imgproc+Moments.java
+244
-0
modules/imgproc/misc/java/test/MomentsTest.java
modules/imgproc/misc/java/test/MomentsTest.java
+42
-190
modules/java/generator/gen_java.py
modules/java/generator/gen_java.py
+7
-0
未找到文件。
modules/imgproc/misc/java/src/java/imgproc+Moments.java
0 → 100644
浏览文件 @
3c6aa650
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
浏览文件 @
3c6aa650
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
浏览文件 @
3c6aa650
...
...
@@ -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"
},
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录