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
d2233f9d
Commit
d2233f9d
authored
Jul 28, 2011
by
Andrey Pavlenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Java API: converters vector<> to/from Mat are fixed
parent
954f3c1e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
69 additions
and
76 deletions
+69
-76
converters.cpp
modules/java/src/cpp/converters.cpp
+16
-29
Converters.java
modules/java/src/java/Converters.java
+53
-47
No files found.
modules/java/src/cpp/converters.cpp
View file @
d2233f9d
...
@@ -18,7 +18,7 @@ using namespace cv;
...
@@ -18,7 +18,7 @@ using namespace cv;
void
Mat_to_vector_int
(
Mat
&
mat
,
vector
<
int
>&
v_int
)
void
Mat_to_vector_int
(
Mat
&
mat
,
vector
<
int
>&
v_int
)
{
{
v_int
.
clear
();
v_int
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC1
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC1
||
mat
.
col
s
!=
1
);
v_int
=
(
vector
<
int
>
)
mat
;
v_int
=
(
vector
<
int
>
)
mat
;
}
}
...
@@ -33,7 +33,7 @@ void vector_int_to_Mat(vector<int>& v_int, Mat& mat)
...
@@ -33,7 +33,7 @@ void vector_int_to_Mat(vector<int>& v_int, Mat& mat)
void
Mat_to_vector_double
(
Mat
&
mat
,
vector
<
double
>&
v_double
)
void
Mat_to_vector_double
(
Mat
&
mat
,
vector
<
double
>&
v_double
)
{
{
v_double
.
clear
();
v_double
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_64FC1
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_64FC1
||
mat
.
col
s
!=
1
);
v_double
=
(
vector
<
double
>
)
mat
;
v_double
=
(
vector
<
double
>
)
mat
;
}
}
...
@@ -48,7 +48,7 @@ void vector_double_to_Mat(vector<double>& v_double, Mat& mat)
...
@@ -48,7 +48,7 @@ void vector_double_to_Mat(vector<double>& v_double, Mat& mat)
void
Mat_to_vector_float
(
Mat
&
mat
,
vector
<
float
>&
v_float
)
void
Mat_to_vector_float
(
Mat
&
mat
,
vector
<
float
>&
v_float
)
{
{
v_float
.
clear
();
v_float
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_32FC1
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_32FC1
||
mat
.
col
s
!=
1
);
v_float
=
(
vector
<
float
>
)
mat
;
v_float
=
(
vector
<
float
>
)
mat
;
}
}
...
@@ -63,7 +63,7 @@ void vector_float_to_Mat(vector<float>& v_float, Mat& mat)
...
@@ -63,7 +63,7 @@ void vector_float_to_Mat(vector<float>& v_float, Mat& mat)
void
Mat_to_vector_uchar
(
Mat
&
mat
,
vector
<
uchar
>&
v_uchar
)
void
Mat_to_vector_uchar
(
Mat
&
mat
,
vector
<
uchar
>&
v_uchar
)
{
{
v_uchar
.
clear
();
v_uchar
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_8UC1
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_8UC1
||
mat
.
col
s
!=
1
);
v_uchar
=
(
vector
<
uchar
>
)
mat
;
v_uchar
=
(
vector
<
uchar
>
)
mat
;
}
}
...
@@ -73,21 +73,13 @@ void Mat_to_vector_uchar(Mat& mat, vector<uchar>& v_uchar)
...
@@ -73,21 +73,13 @@ void Mat_to_vector_uchar(Mat& mat, vector<uchar>& v_uchar)
void
Mat_to_vector_Rect
(
Mat
&
mat
,
vector
<
Rect
>&
v_rect
)
void
Mat_to_vector_Rect
(
Mat
&
mat
,
vector
<
Rect
>&
v_rect
)
{
{
v_rect
.
clear
();
v_rect
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC4
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC4
||
mat
.
col
s
!=
1
);
v_rect
=
(
vector
<
Rect
>
)
mat
;
v_rect
=
(
vector
<
Rect
>
)
mat
;
/*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]) );
}*/
}
}
void
vector_Rect_to_Mat
(
vector
<
Rect
>&
v_rect
,
Mat
&
mat
)
void
vector_Rect_to_Mat
(
vector
<
Rect
>&
v_rect
,
Mat
&
mat
)
{
{
mat
=
Mat
(
v_rect
);
mat
=
Mat
(
v_rect
);
/*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);
}*/
}
}
...
@@ -95,19 +87,14 @@ void vector_Rect_to_Mat(vector<Rect>& v_rect, Mat& mat)
...
@@ -95,19 +87,14 @@ void vector_Rect_to_Mat(vector<Rect>& v_rect, Mat& mat)
void
Mat_to_vector_Point
(
Mat
&
mat
,
vector
<
Point
>&
v_point
)
void
Mat_to_vector_Point
(
Mat
&
mat
,
vector
<
Point
>&
v_point
)
{
{
v_point
.
clear
();
v_point
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC2
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_32SC2
||
mat
.
col
s
!=
1
);
v_point
=
(
vector
<
Point
>
)
mat
;
v_point
=
(
vector
<
Point
>
)
mat
;
/*for(int i=0; i<mat.cols; i++)
v_point.push_back( Point( mat.at< Vec<int, 2> >(0, i) ) );*/
}
}
void
vector_Point_to_Mat
(
vector
<
Point
>&
v_point
,
Mat
&
mat
)
void
vector_Point_to_Mat
(
vector
<
Point
>&
v_point
,
Mat
&
mat
)
{
{
mat
=
Mat
(
v_point
);
mat
=
Mat
(
v_point
);
/*mat.create(1, v_point.size(), CV_32SC2);
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);*/
}
}
...
@@ -115,10 +102,10 @@ void vector_Point_to_Mat(vector<Point>& v_point, Mat& mat)
...
@@ -115,10 +102,10 @@ void vector_Point_to_Mat(vector<Point>& v_point, Mat& mat)
void
Mat_to_vector_KeyPoint
(
Mat
&
mat
,
vector
<
KeyPoint
>&
v_kp
)
void
Mat_to_vector_KeyPoint
(
Mat
&
mat
,
vector
<
KeyPoint
>&
v_kp
)
{
{
v_kp
.
clear
();
v_kp
.
clear
();
CHECK_MAT
(
mat
.
type
()
!=
CV_64FC
(
7
)
||
mat
.
row
s
!=
1
);
CHECK_MAT
(
mat
.
type
()
!=
CV_64FC
(
7
)
||
mat
.
col
s
!=
1
);
for
(
int
i
=
0
;
i
<
mat
.
col
s
;
i
++
)
for
(
int
i
=
0
;
i
<
mat
.
row
s
;
i
++
)
{
{
Vec
<
double
,
7
>
v
=
mat
.
at
<
Vec
<
double
,
7
>
>
(
0
,
i
);
Vec
<
double
,
7
>
v
=
mat
.
at
<
Vec
<
double
,
7
>
>
(
i
,
0
);
KeyPoint
kp
((
float
)
v
[
0
],
(
float
)
v
[
1
],
(
float
)
v
[
2
],
(
float
)
v
[
3
],
(
float
)
v
[
4
],
(
int
)
v
[
5
],
(
int
)
v
[
6
]);
KeyPoint
kp
((
float
)
v
[
0
],
(
float
)
v
[
1
],
(
float
)
v
[
2
],
(
float
)
v
[
3
],
(
float
)
v
[
4
],
(
int
)
v
[
5
],
(
int
)
v
[
6
]);
v_kp
.
push_back
(
kp
);
v_kp
.
push_back
(
kp
);
}
}
...
@@ -129,11 +116,11 @@ void Mat_to_vector_KeyPoint(Mat& mat, vector<KeyPoint>& v_kp)
...
@@ -129,11 +116,11 @@ void Mat_to_vector_KeyPoint(Mat& mat, vector<KeyPoint>& v_kp)
void
vector_KeyPoint_to_Mat
(
vector
<
KeyPoint
>&
v_kp
,
Mat
&
mat
)
void
vector_KeyPoint_to_Mat
(
vector
<
KeyPoint
>&
v_kp
,
Mat
&
mat
)
{
{
int
count
=
v_kp
.
size
();
int
count
=
v_kp
.
size
();
mat
.
create
(
1
,
count
,
CV_64FC
(
7
));
mat
.
create
(
count
,
1
,
CV_64FC
(
7
));
for
(
int
i
=
0
;
i
<
count
;
i
++
)
for
(
int
i
=
0
;
i
<
count
;
i
++
)
{
{
KeyPoint
kp
=
v_kp
[
i
];
KeyPoint
kp
=
v_kp
[
i
];
mat
.
at
<
Vec
<
double
,
7
>
>
(
0
,
i
)
=
Vec
<
double
,
7
>
(
kp
.
pt
.
x
,
kp
.
pt
.
y
,
kp
.
size
,
kp
.
angle
,
kp
.
response
,
kp
.
octave
,
kp
.
class_id
);
mat
.
at
<
Vec
<
double
,
7
>
>
(
i
,
0
)
=
Vec
<
double
,
7
>
(
kp
.
pt
.
x
,
kp
.
pt
.
y
,
kp
.
size
,
kp
.
angle
,
kp
.
response
,
kp
.
octave
,
kp
.
class_id
);
}
}
}
}
...
@@ -142,11 +129,11 @@ void vector_KeyPoint_to_Mat(vector<KeyPoint>& v_kp, Mat& mat)
...
@@ -142,11 +129,11 @@ void vector_KeyPoint_to_Mat(vector<KeyPoint>& v_kp, Mat& mat)
void
Mat_to_vector_Mat
(
cv
::
Mat
&
mat
,
std
::
vector
<
cv
::
Mat
>&
v_mat
)
void
Mat_to_vector_Mat
(
cv
::
Mat
&
mat
,
std
::
vector
<
cv
::
Mat
>&
v_mat
)
{
{
v_mat
.
clear
();
v_mat
.
clear
();
if
(
mat
.
type
()
==
CV_32SC2
&&
mat
.
row
s
==
1
)
if
(
mat
.
type
()
==
CV_32SC2
&&
mat
.
col
s
==
1
)
{
{
for
(
int
i
=
0
;
i
<
mat
.
col
s
;
i
++
)
for
(
int
i
=
0
;
i
<
mat
.
row
s
;
i
++
)
{
{
Vec
<
int
,
2
>
a
=
mat
.
at
<
Vec
<
int
,
2
>
>
(
0
,
i
);
Vec
<
int
,
2
>
a
=
mat
.
at
<
Vec
<
int
,
2
>
>
(
i
,
0
);
long
long
addr
=
(((
long
long
)
a
[
0
])
<<
32
)
|
a
[
1
];
long
long
addr
=
(((
long
long
)
a
[
0
])
<<
32
)
|
a
[
1
];
Mat
&
m
=
*
(
(
Mat
*
)
addr
);
Mat
&
m
=
*
(
(
Mat
*
)
addr
);
v_mat
.
push_back
(
m
);
v_mat
.
push_back
(
m
);
...
@@ -158,10 +145,10 @@ void Mat_to_vector_Mat(cv::Mat& mat, std::vector<cv::Mat>& v_mat)
...
@@ -158,10 +145,10 @@ void Mat_to_vector_Mat(cv::Mat& mat, std::vector<cv::Mat>& v_mat)
void
vector_Mat_to_Mat
(
std
::
vector
<
cv
::
Mat
>&
v_mat
,
cv
::
Mat
&
mat
)
void
vector_Mat_to_Mat
(
std
::
vector
<
cv
::
Mat
>&
v_mat
,
cv
::
Mat
&
mat
)
{
{
int
count
=
v_mat
.
size
();
int
count
=
v_mat
.
size
();
mat
.
create
(
1
,
count
,
CV_32SC2
);
mat
.
create
(
count
,
1
,
CV_32SC2
);
for
(
int
i
=
0
;
i
<
count
;
i
++
)
for
(
int
i
=
0
;
i
<
count
;
i
++
)
{
{
long
long
addr
=
(
long
long
)
new
Mat
(
v_mat
[
i
]);
long
long
addr
=
(
long
long
)
new
Mat
(
v_mat
[
i
]);
mat
.
at
<
Vec
<
int
,
2
>
>
(
0
,
i
)
=
Vec
<
int
,
2
>
(
addr
>>
32
,
addr
&
0xffffffff
);
mat
.
at
<
Vec
<
int
,
2
>
>
(
i
,
0
)
=
Vec
<
int
,
2
>
(
addr
>>
32
,
addr
&
0xffffffff
);
}
}
}
}
modules/java/src/java/Converters.java
View file @
d2233f9d
...
@@ -15,7 +15,7 @@ public class Converters {
...
@@ -15,7 +15,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32SC2
);
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32SC2
);
int
[]
buff
=
new
int
[
count
*
2
];
int
[]
buff
=
new
int
[
count
*
2
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
Point
p
=
pts
.
get
(
i
);
Point
p
=
pts
.
get
(
i
);
...
@@ -33,7 +33,7 @@ public class Converters {
...
@@ -33,7 +33,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32FC2
);
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32FC2
);
float
[]
buff
=
new
float
[
count
*
2
];
float
[]
buff
=
new
float
[
count
*
2
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
Point
p
=
pts
.
get
(
i
);
Point
p
=
pts
.
get
(
i
);
...
@@ -51,7 +51,7 @@ public class Converters {
...
@@ -51,7 +51,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
int
count
=
(
pts
!=
null
)
?
pts
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32FC3
);
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32FC3
);
float
[]
buff
=
new
float
[
count
*
3
];
float
[]
buff
=
new
float
[
count
*
3
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
Point3
p
=
pts
.
get
(
i
);
Point3
p
=
pts
.
get
(
i
);
...
@@ -68,15 +68,16 @@ public class Converters {
...
@@ -68,15 +68,16 @@ public class Converters {
public
static
void
Mat_to_vector_Point
(
Mat
m
,
List
<
Point
>
pts
)
{
public
static
void
Mat_to_vector_Point
(
Mat
m
,
List
<
Point
>
pts
)
{
if
(
pts
==
null
)
if
(
pts
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"pts == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_32SC2
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_32SC2
!=
m
.
type
()
||
m
.
cols
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_32SC2 != m.type() || m.cols()!=1\n"
+
m
);
pts
.
clear
();
pts
.
clear
();
int
[]
buff
=
new
int
[
2
*
co
ls
];
int
[]
buff
=
new
int
[
2
*
co
unt
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
pts
.
add
(
new
Point
(
buff
[
i
*
2
],
buff
[
i
*
2
+
1
])
);
pts
.
add
(
new
Point
(
buff
[
i
*
2
],
buff
[
i
*
2
+
1
])
);
}
}
}
}
...
@@ -85,7 +86,7 @@ public class Converters {
...
@@ -85,7 +86,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
mats
!=
null
)
?
mats
.
size
()
:
0
;
int
count
=
(
mats
!=
null
)
?
mats
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32SC2
);
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32SC2
);
int
[]
buff
=
new
int
[
count
*
2
];
int
[]
buff
=
new
int
[
count
*
2
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
long
addr
=
mats
.
get
(
i
).
nativeObj
;
long
addr
=
mats
.
get
(
i
).
nativeObj
;
...
@@ -101,15 +102,16 @@ public class Converters {
...
@@ -101,15 +102,16 @@ public class Converters {
public
static
void
Mat_to_vector_Mat
(
Mat
m
,
List
<
Mat
>
mats
)
{
public
static
void
Mat_to_vector_Mat
(
Mat
m
,
List
<
Mat
>
mats
)
{
if
(
mats
==
null
)
if
(
mats
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"mats == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_32SC2
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_32SC2
!=
m
.
type
()
||
m
.
cols
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_32SC2 != m.type() || m.cols()!=1\n"
+
m
);
mats
.
clear
();
mats
.
clear
();
int
[]
buff
=
new
int
[
co
ls
*
2
];
int
[]
buff
=
new
int
[
co
unt
*
2
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
long
addr
=
(((
long
)
buff
[
i
*
2
])<<
32
)
|
((
long
)
buff
[
i
*
2
+
1
]);
long
addr
=
(((
long
)
buff
[
i
*
2
])<<
32
)
|
((
long
)
buff
[
i
*
2
+
1
]);
mats
.
add
(
new
Mat
(
addr
)
);
mats
.
add
(
new
Mat
(
addr
)
);
}
}
...
@@ -119,7 +121,7 @@ public class Converters {
...
@@ -119,7 +121,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
fs
!=
null
)
?
fs
.
size
()
:
0
;
int
count
=
(
fs
!=
null
)
?
fs
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32FC1
);
//Point can be saved into double[2]
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32FC1
);
float
[]
buff
=
new
float
[
count
];
float
[]
buff
=
new
float
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
float
f
=
fs
.
get
(
i
);
float
f
=
fs
.
get
(
i
);
...
@@ -134,15 +136,16 @@ public class Converters {
...
@@ -134,15 +136,16 @@ public class Converters {
public
static
void
Mat_to_vector_float
(
Mat
m
,
List
<
Float
>
fs
)
{
public
static
void
Mat_to_vector_float
(
Mat
m
,
List
<
Float
>
fs
)
{
if
(
fs
==
null
)
if
(
fs
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"fs == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_32FC1
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_32FC1
!=
m
.
type
()
||
m
.
rows
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_32FC1 != m.type() || m.rows()!=1\n"
+
m
);
fs
.
clear
();
fs
.
clear
();
float
[]
buff
=
new
float
[
co
ls
];
float
[]
buff
=
new
float
[
co
unt
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
fs
.
add
(
new
Float
(
buff
[
i
])
);
fs
.
add
(
new
Float
(
buff
[
i
])
);
}
}
}
}
...
@@ -151,7 +154,7 @@ public class Converters {
...
@@ -151,7 +154,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
bs
!=
null
)
?
bs
.
size
()
:
0
;
int
count
=
(
bs
!=
null
)
?
bs
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_8UC1
);
//Point can be saved into double[2]
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_8UC1
);
byte
[]
buff
=
new
byte
[
count
];
byte
[]
buff
=
new
byte
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
byte
b
=
bs
.
get
(
i
);
byte
b
=
bs
.
get
(
i
);
...
@@ -168,7 +171,7 @@ public class Converters {
...
@@ -168,7 +171,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
is
!=
null
)
?
is
.
size
()
:
0
;
int
count
=
(
is
!=
null
)
?
is
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32SC1
);
//Point can be saved into double[2]
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32SC1
);
int
[]
buff
=
new
int
[
count
];
int
[]
buff
=
new
int
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
int
v
=
is
.
get
(
i
);
int
v
=
is
.
get
(
i
);
...
@@ -183,15 +186,16 @@ public class Converters {
...
@@ -183,15 +186,16 @@ public class Converters {
public
static
void
Mat_to_vector_int
(
Mat
m
,
List
<
Integer
>
is
)
{
public
static
void
Mat_to_vector_int
(
Mat
m
,
List
<
Integer
>
is
)
{
if
(
is
==
null
)
if
(
is
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"is == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_32SC1
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_32SC1
!=
m
.
type
()
||
m
.
cols
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_32SC1 != m.type() || m.cols()!=1\n"
+
m
);
is
.
clear
();
is
.
clear
();
int
[]
buff
=
new
int
[
co
ls
];
int
[]
buff
=
new
int
[
co
unt
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
is
.
add
(
new
Integer
(
buff
[
i
])
);
is
.
add
(
new
Integer
(
buff
[
i
])
);
}
}
}
}
...
@@ -200,7 +204,7 @@ public class Converters {
...
@@ -200,7 +204,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
rs
!=
null
)
?
rs
.
size
()
:
0
;
int
count
=
(
rs
!=
null
)
?
rs
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_32SC4
);
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_32SC4
);
int
[]
buff
=
new
int
[
4
*
count
];
int
[]
buff
=
new
int
[
4
*
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
Rect
r
=
rs
.
get
(
i
);
Rect
r
=
rs
.
get
(
i
);
...
@@ -218,15 +222,16 @@ public class Converters {
...
@@ -218,15 +222,16 @@ public class Converters {
public
static
void
Mat_to_vector_Rect
(
Mat
m
,
List
<
Rect
>
rs
)
{
public
static
void
Mat_to_vector_Rect
(
Mat
m
,
List
<
Rect
>
rs
)
{
if
(
rs
==
null
)
if
(
rs
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"rs == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_32SC4
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_32SC4
!=
m
.
type
()
||
m
.
cols
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_32SC4 != m.type() || m.rows()!=1\n"
+
m
);
rs
.
clear
();
rs
.
clear
();
int
[]
buff
=
new
int
[
4
*
co
ls
];
int
[]
buff
=
new
int
[
4
*
co
unt
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
rs
.
add
(
new
Rect
(
buff
[
4
*
i
],
buff
[
4
*
i
+
1
],
buff
[
4
*
i
+
2
],
buff
[
4
*
i
+
3
])
);
rs
.
add
(
new
Rect
(
buff
[
4
*
i
],
buff
[
4
*
i
+
1
],
buff
[
4
*
i
+
2
],
buff
[
4
*
i
+
3
])
);
}
}
}
}
...
@@ -236,7 +241,7 @@ public class Converters {
...
@@ -236,7 +241,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
kps
!=
null
)
?
kps
.
size
()
:
0
;
int
count
=
(
kps
!=
null
)
?
kps
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_64FC
(
7
));
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_64FC
(
7
));
double
[]
buff
=
new
double
[
count
*
7
];
double
[]
buff
=
new
double
[
count
*
7
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
KeyPoint
kp
=
kps
.
get
(
i
);
KeyPoint
kp
=
kps
.
get
(
i
);
...
@@ -257,17 +262,18 @@ public class Converters {
...
@@ -257,17 +262,18 @@ public class Converters {
public
static
void
Mat_to_vector_KeyPoint
(
Mat
m
,
List
<
KeyPoint
>
kps
)
{
public
static
void
Mat_to_vector_KeyPoint
(
Mat
m
,
List
<
KeyPoint
>
kps
)
{
if
(
kps
==
null
)
if
(
kps
==
null
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"kps == null"
);
int
cols
=
m
.
cols
();
int
count
=
m
.
rows
();
if
(
CvType
.
CV_64FC
(
7
)
!=
m
.
type
()
||
m
.
rows
()!=
1
)
if
(
CvType
.
CV_64FC
(
7
)
!=
m
.
type
()
||
m
.
cols
()!=
1
)
throw
new
java
.
lang
.
IllegalArgumentException
();
throw
new
java
.
lang
.
IllegalArgumentException
(
"CvType.CV_64FC(7) != m.type() || m.cols()!=1\n"
+
m
);
kps
.
clear
();
kps
.
clear
();
double
[]
buff
=
new
double
[
7
*
co
ls
];
double
[]
buff
=
new
double
[
7
*
co
unt
];
m
.
get
(
0
,
0
,
buff
);
m
.
get
(
0
,
0
,
buff
);
for
(
int
i
=
0
;
i
<
co
ls
;
i
++)
{
for
(
int
i
=
0
;
i
<
co
unt
;
i
++)
{
kps
.
add
(
new
KeyPoint
(
(
float
)
buff
[
4
*
i
],
(
float
)
buff
[
4
*
i
+
1
],
(
float
)
buff
[
4
*
i
+
2
],
(
float
)
buff
[
4
*
i
+
3
],
kps
.
add
(
new
KeyPoint
(
(
float
)
buff
[
4
*
i
],
(
float
)
buff
[
4
*
i
+
1
],
(
float
)
buff
[
4
*
i
+
2
],
(
float
)
buff
[
4
*
i
+
3
],
(
float
)
buff
[
4
*
i
+
4
],
(
int
)
buff
[
4
*
i
+
5
],
(
int
)
buff
[
4
*
i
+
6
]
)
);
(
float
)
buff
[
4
*
i
+
4
],
(
int
)
buff
[
4
*
i
+
5
],
(
int
)
buff
[
4
*
i
+
6
]
)
);
}
}
}
}
...
@@ -276,7 +282,7 @@ public class Converters {
...
@@ -276,7 +282,7 @@ public class Converters {
Mat
res
;
Mat
res
;
int
count
=
(
ds
!=
null
)
?
ds
.
size
()
:
0
;
int
count
=
(
ds
!=
null
)
?
ds
.
size
()
:
0
;
if
(
count
>
0
){
if
(
count
>
0
){
res
=
new
Mat
(
1
,
count
,
CvType
.
CV_64FC1
);
//Point can be saved into double[2]
res
=
new
Mat
(
count
,
1
,
CvType
.
CV_64FC1
);
double
[]
buff
=
new
double
[
count
];
double
[]
buff
=
new
double
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
double
v
=
ds
.
get
(
i
);
double
v
=
ds
.
get
(
i
);
...
...
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