Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
bf40a3a5
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,发现更多精彩内容 >>
提交
bf40a3a5
编写于
7月 16, 2011
作者:
L
Leonid Beynenson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added functions required for Java API wrappers generating converting Mat-s to/from vectors.
上级
e76ad550
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
15 deletion
+90
-15
modules/java/android_test/src/org/opencv/test/OpenCVTestRunner.java
...va/android_test/src/org/opencv/test/OpenCVTestRunner.java
+1
-0
modules/java/android_test/src/org/opencv/test/objdetect/objdetectTest.java
...oid_test/src/org/opencv/test/objdetect/objdetectTest.java
+23
-1
modules/java/src/cpp/utils.cpp
modules/java/src/cpp/utils.cpp
+66
-14
未找到文件。
modules/java/android_test/src/org/opencv/test/OpenCVTestRunner.java
浏览文件 @
bf40a3a5
...
...
@@ -21,6 +21,7 @@ public class OpenCVTestRunner extends InstrumentationTestRunner {
public
static
String
LENA_PATH
=
"/data/data/org.opencv.test/files/lena.jpg"
;
public
static
String
CHESS_PATH
=
"/data/data/org.opencv.test/files/chessboard.jpg"
;
public
static
String
LBPCASCADE_FRONTALFACE_PATH
=
"/mnt/sdcard/lbpcascade_frontalface.xml"
;
private
static
String
TAG
=
"opencv_test_java"
;
private
AndroidTestRunner
androidTestRunner
;
...
...
modules/java/android_test/src/org/opencv/test/objdetect/objdetectTest.java
浏览文件 @
bf40a3a5
package
org.opencv.test.objdetect
;
import
org.opencv.test.OpenCVTestCase
;
import
java.util.ArrayList
;
import
org.opencv.Mat
;
import
org.opencv.objdetect
;
import
org.opencv.imgproc
;
import
org.opencv.highgui
;
import
org.opencv.core
;
import
org.opencv.test.OpenCVTestCase
;
import
org.opencv.test.OpenCVTestRunner
;
import
org.opencv.Rect
;
import
org.opencv.Size
;
public
class
objdetectTest
extends
OpenCVTestCase
{
public
void
testCascadeClassifierFaceDetector
()
{
//objdetect.CascadeClassifier cc=new objdetect.CascadeClassifier("/mnt/sdcard/lbpcascade_frontalface.xml");
objdetect
.
CascadeClassifier
cc
=
new
objdetect
.
CascadeClassifier
(
"/mnt/sdcard/haarcascade_frontalface_alt2.xml"
);
ArrayList
<
Rect
>
faces
=
new
ArrayList
<
Rect
>();
Mat
shot002
=
highgui
.
imread
(
"/mnt/sdcard/shot0002.png"
);
OpenCVTestRunner
.
Log
(
"after imread shot002"
);
cc
.
detectMultiScale
(
shot002
,
faces
,
1.1
,
2
,
2
/*TODO: CV_HAAR_SCALE_IMAGE*/
,
new
Size
(
10
,
10
));
OpenCVTestRunner
.
Log
(
"faces.size="
+
faces
.
size
());
}
}
modules/java/src/cpp/utils.cpp
浏览文件 @
bf40a3a5
#include "utils.h"
#include <android/log.h>
#define MODULE_LOG_TAG "OpenCV.utils.cpp"
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, MODULE_LOG_TAG, __VA_ARGS__))
using
namespace
cv
;
...
...
@@ -6,12 +10,21 @@ using namespace cv;
void
Mat_to_vector_int
(
Mat
&
mat
,
vector
<
int
>&
v_int
)
{
return
;
v_int
.
clear
();
if
(
mat
.
type
()
!=
CV_32SC1
||
mat
.
rows
!=
1
)
return
;
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
v_int
.
push_back
(
mat
.
at
<
int
>
(
0
,
i
)
);
}
void
vector_int_to_Mat
(
vector
<
int
>&
v_int
,
Mat
&
mat
)
{
return
;
mat
.
create
(
1
,
v_int
.
size
(),
CV_32SC1
);
for
(
size_t
i
=
0
;
i
<
v_int
.
size
();
i
++
)
mat
.
at
<
int
>
(
0
,
i
)
=
v_int
[
i
];
}
...
...
@@ -19,12 +32,21 @@ void vector_int_to_Mat(vector<int>& v_int, Mat& mat)
void
Mat_to_vector_double
(
Mat
&
mat
,
vector
<
double
>&
v_double
)
{
return
;
v_double
.
clear
();
if
(
mat
.
type
()
!=
CV_64FC1
||
mat
.
rows
!=
1
)
return
;
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
v_double
.
push_back
(
mat
.
at
<
double
>
(
0
,
i
)
);
}
void
vector_double_to_Mat
(
vector
<
double
>&
v_double
,
Mat
&
mat
)
{
return
;
mat
.
create
(
1
,
v_double
.
size
(),
CV_64FC1
);
for
(
size_t
i
=
0
;
i
<
v_double
.
size
();
i
++
)
mat
.
at
<
double
>
(
0
,
i
)
=
v_double
[
i
];
}
...
...
@@ -32,12 +54,21 @@ void vector_double_to_Mat(vector<double>& v_double, Mat& mat)
void
Mat_to_vector_float
(
Mat
&
mat
,
vector
<
float
>&
v_float
)
{
return
;
v_float
.
clear
();
if
(
mat
.
type
()
!=
CV_32FC1
||
mat
.
rows
!=
1
)
return
;
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
v_float
.
push_back
(
mat
.
at
<
float
>
(
0
,
i
)
);
}
void
vector_float_to_Mat
(
vector
<
float
>&
v_float
,
Mat
&
mat
)
{
return
;
mat
.
create
(
1
,
v_float
.
size
(),
CV_32FC1
);
for
(
size_t
i
=
0
;
i
<
v_float
.
size
();
i
++
)
mat
.
at
<
float
>
(
0
,
i
)
=
v_float
[
i
];
}
...
...
@@ -45,7 +76,14 @@ void vector_float_to_Mat(vector<float>& v_float, Mat& mat)
void
Mat_to_vector_uchar
(
cv
::
Mat
&
mat
,
std
::
vector
<
uchar
>&
v_uchar
)
{
return
;
v_uchar
.
clear
();
if
(
mat
.
type
()
!=
CV_8UC1
||
mat
.
rows
!=
1
)
return
;
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
v_uchar
.
push_back
(
mat
.
at
<
uchar
>
(
0
,
i
)
);
}
...
...
@@ -53,12 +91,29 @@ void Mat_to_vector_uchar(cv::Mat& mat, std::vector<uchar>& v_uchar)
void
Mat_to_vector_Rect
(
Mat
&
mat
,
vector
<
Rect
>&
v_rect
)
{
return
;
LOGD
(
"Mat_to_vector_Rect start, mat.cols=%d"
,
mat
.
cols
);
v_rect
.
clear
();
if
(
mat
.
type
()
!=
CV_32SC4
||
mat
.
rows
!=
1
)
{
LOGD
(
"ERROR mat.type()!= CV_32SC4 || mat.rows!=1"
);
return
;
}
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
{
Vec
<
int
,
4
>
v
=
mat
.
at
<
Vec
<
int
,
4
>
>
(
0
,
i
);
v_rect
.
push_back
(
Rect
(
v
[
0
],
v
[
1
],
v
[
2
],
v
[
3
])
);
}
LOGD
(
"Mat_to_vector_Rect end, vec.size=%d"
,
(
int
)
v_rect
.
size
());
}
void
vector_Rect_to_Mat
(
vector
<
Rect
>&
v_rect
,
Mat
&
mat
)
{
return
;
LOGD
(
"vector_Rect_to_Mat start, vec.size=%d"
,
(
int
)
v_rect
.
size
());
mat
.
create
(
1
,
v_rect
.
size
(),
CV_32SC4
);
for
(
size_t
i
=
0
;
i
<
v_rect
.
size
();
i
++
)
{
mat
.
at
<
Vec
<
int
,
4
>
>
(
0
,
i
)
=
Vec
<
int
,
4
>
(
v_rect
[
i
].
x
,
v_rect
[
i
].
y
,
v_rect
[
i
].
width
,
v_rect
[
i
].
height
);
}
LOGD
(
"vector_Rect_to_Mat end, mat.cols=%d"
,
mat
.
cols
);
}
...
...
@@ -66,23 +121,20 @@ void vector_Rect_to_Mat(vector<Rect>& v_rect, Mat& mat)
void
Mat_to_vector_Point
(
Mat
&
mat
,
vector
<
Point
>&
v_point
)
{
v_point
.
clear
();
if
(
mat
.
type
()
!=
CV_32SC2
||
mat
.
rows
!=
1
)
return
;
for
(
int
i
=
0
;
i
<
mat
.
cols
;
i
++
)
v_point
.
push_back
(
Point
(
mat
.
at
<
Vec
<
int
,
2
>
>
(
0
,
i
)
)
);
return
;
}
void
vector_Point_to_Mat
(
vector
<
Point
>&
v_point
,
Mat
&
mat
)
{
mat
.
create
(
1
,
v_point
.
size
(),
CV_32SC2
);
for
(
in
t
i
=
0
;
i
<
v_point
.
size
();
i
++
)
for
(
size_
t
i
=
0
;
i
<
v_point
.
size
();
i
++
)
mat
.
at
<
Vec
<
int
,
2
>
>
(
0
,
i
)
=
Vec
<
int
,
2
>
(
v_point
[
i
].
x
,
v_point
[
i
].
y
);
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录