|
|
|
@ -193,34 +193,36 @@ type_dict = { |
|
|
|
|
|
|
|
|
|
# "complex" : { j_type : "?", jn_args : (("", ""),), jn_name : "", jni_var : "", jni_name : "", "suffix" : "?" }, |
|
|
|
|
|
|
|
|
|
"vector_Point" : { "j_type" : "List<Point>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point2f" : { "j_type" : "List<Point>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point2f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point2d" : { "j_type" : "List<Point>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point2d> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3i" : { "j_type" : "List<Point3>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3i> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3f" : { "j_type" : "List<Point3>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3d" : { "j_type" : "List<Point3>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3d> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point" : { "j_type" : "CvVectorPoint", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point2f" : { "j_type" : "CvVectorPoint2f", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point2f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point2d" : { "j_type" : "CvVectorPoint2f", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point2d> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3i" : { "j_type" : "CvVectorPoint3", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3i> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3f" : { "j_type" : "CvVectorPoint3f", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Point3d" : { "j_type" : "CvVectorPoint3f", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Point3d> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_KeyPoint" : { "j_type" : "CvVectorKeyPoint", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<KeyPoint> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_DMatch" : { "j_type" : "CvVectorDMatch", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<DMatch> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Rect" : { "j_type" : "CvVectorRect", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Rect> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_uchar" : { "j_type" : "CvVectorByte", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<uchar> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_char" : { "j_type" : "CvVectorByte", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<char> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_int" : { "j_type" : "CvVectorInt", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<int> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_float" : { "j_type" : "CvVectorFloat", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<float> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_double" : { "j_type" : "CvVectorDouble", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<double> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Vec4f" : { "j_type" : "CvVectorFloat4", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Vec4f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Vec6f" : { "j_type" : "CvVectorFloat6", "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" }, |
|
|
|
|
"vector_KeyPoint" : { "j_type" : "List<KeyPoint>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<KeyPoint> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_DMatch" : { "j_type" : "List<DMatch>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<DMatch> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Rect" : { "j_type" : "List<Rect>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Rect> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_uchar" : { "j_type" : "List<Byte>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<uchar> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_char" : { "j_type" : "List<Byte>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<char> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_int" : { "j_type" : "List<Integer>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<int> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_float" : { "j_type" : "List<Float>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<float> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_double" : { "j_type" : "List<Double>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<double> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Vec4f" : { "j_type" : "Mat", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Vec4f> %(n)s", "suffix" : "J" }, |
|
|
|
|
"vector_Vec6f" : { "j_type" : "Mat", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector<Vec6f> %(n)s", "suffix" : "J" }, |
|
|
|
|
|
|
|
|
|
"vector_vector_KeyPoint": { "j_type" : "List<List<KeyPoint>>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<KeyPoint> > %(n)s" }, |
|
|
|
|
"vector_vector_DMatch" : { "j_type" : "List<List<DMatch>>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<DMatch> > %(n)s" }, |
|
|
|
|
"vector_vector_char" : { "j_type" : "List<List<Byte>>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<char> > %(n)s" }, |
|
|
|
|
"vector_vector_Point" : { "j_type" : "List<List<Point>>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<Point> > %(n)s" }, |
|
|
|
|
"vector_vector_Point2f" : { "j_type" : "List<List<Point>>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<Point2f> > %(n)s" }, |
|
|
|
|
|
|
|
|
|
"vector_vector_KeyPoint": { "j_type" : "List<CvVectorKeyPoint>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<KeyPoint> > %(n)s" }, |
|
|
|
|
"vector_vector_DMatch" : { "j_type" : "List<CvVectorDMatch>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<DMatch> > %(n)s" }, |
|
|
|
|
"vector_vector_char" : { "j_type" : "List<CvVectorByte>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<char> > %(n)s" }, |
|
|
|
|
"vector_vector_Point" : { "j_type" : "List<CvVectorPoint>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<Point> > %(n)s" }, |
|
|
|
|
"vector_vector_Point2f" : { "j_type" : "List<CvVectorPoint2f>", "jn_type" : "long", "jni_type" : "jlong", "jni_var" : "vector< vector<Point2f> > %(n)s" }, |
|
|
|
|
|
|
|
|
|
"Mat" : { "j_type" : "Mat", "jn_type" : "long", "jn_args" : (("__int64", ".nativeObj"),), |
|
|
|
|
"jni_var" : "Mat& %(n)s = *((Mat*)%(n)s_nativeObj)", |
|
|
|
|
"jni_type" : "jlong", #"jni_name" : "*%(n)s", |
|
|
|
|
"suffix" : "J" }, |
|
|
|
|
|
|
|
|
|
"Point" : { "j_type" : "Point", "jn_args" : (("double", ".x"), ("double", ".y")), |
|
|
|
|
"jni_var" : "Point %(n)s((int)%(n)s_x, (int)%(n)s_y)", "jni_type" : "jdoubleArray", |
|
|
|
|
"suffix" : "DD"}, |
|
|
|
@ -510,7 +512,6 @@ func_arg_fix = { |
|
|
|
|
'boundingRect' : { 'points' : 'vector_Point', }, |
|
|
|
|
'approxPolyDP' : { 'curve' : 'vector_Point2f', 'approxCurve' : 'vector_Point2f', }, |
|
|
|
|
'arcLength' : { 'curve' : 'vector_Point2f', }, |
|
|
|
|
'isContourConvex' : { 'contour' : 'vector_Point2f', }, |
|
|
|
|
'pointPolygonTest' : { 'contour' : 'vector_Point2f', }, |
|
|
|
|
'minAreaRect' : { 'points' : 'vector_Point2f', }, |
|
|
|
|
'getAffineTransform' : { 'src' : 'vector_Point2f', 'dst' : 'vector_Point2f', }, |
|
|
|
@ -519,6 +520,10 @@ func_arg_fix = { |
|
|
|
|
'undistortPoints' : { 'src' : 'vector_Point2d', 'dst' : 'vector_Point2d' }, |
|
|
|
|
'checkRange' : {'pos' : '*'}, |
|
|
|
|
'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', }, |
|
|
|
|
}, # '', i.e. no class |
|
|
|
|
} # func_arg_fix |
|
|
|
|
|
|
|
|
@ -891,9 +896,13 @@ extern "C" { |
|
|
|
|
def get_imports(self, scope_classname, ctype): |
|
|
|
|
imports = self.classes[scope_classname or self.Module].imports |
|
|
|
|
if ctype.startswith('vector'): |
|
|
|
|
imports.add("java.util.List") |
|
|
|
|
imports.add("org.opencv.core.Mat") |
|
|
|
|
imports.add("org.opencv.utils.Converters") |
|
|
|
|
if type_dict[ctype]['j_type'].startswith('CvVector'): |
|
|
|
|
imports.add("org.opencv.core." + type_dict[ctype]['j_type']) |
|
|
|
|
return #TMP |
|
|
|
|
else: |
|
|
|
|
imports.add("java.util.List") |
|
|
|
|
imports.add("org.opencv.utils.Converters") |
|
|
|
|
ctype = ctype.replace('vector_', '') |
|
|
|
|
j_type = '' |
|
|
|
|
if ctype in type_dict: |
|
|
|
@ -992,15 +1001,18 @@ extern "C" { |
|
|
|
|
j_prologue.append( "List<Mat> %(n)s_tmplm = new ArrayList<Mat>((%(n)s != null) ? %(n)s.size() : 0);" % {"n" : a.name } ) |
|
|
|
|
j_prologue.append( "Mat %(n)s_mat = Converters.%(t)s_to_Mat(%(n)s, %(n)s_tmplm);" % {"n" : a.name, "t" : a.ctype} ) |
|
|
|
|
else: |
|
|
|
|
j_prologue.append( "Mat %(n)s_mat = Converters.%(t)s_to_Mat(%(n)s);" % {"n" : a.name, "t" : a.ctype} ) |
|
|
|
|
if not type_dict[a.ctype]["j_type"].startswith("CvVector"): |
|
|
|
|
j_prologue.append( "Mat %(n)s_mat = Converters.%(t)s_to_Mat(%(n)s);" % {"n" : a.name, "t" : a.ctype} ) |
|
|
|
|
else: |
|
|
|
|
j_prologue.append( "Mat %s_mat = %s;" % (a.name, a.name) ) |
|
|
|
|
c_prologue.append( "Mat_to_%(t)s( %(n)s_mat, %(n)s );" % {"n" : a.name, "t" : a.ctype} ) |
|
|
|
|
else: |
|
|
|
|
if type_dict[a.ctype]["j_type"] != "Mat": |
|
|
|
|
if not type_dict[a.ctype]["j_type"].startswith("CvVector"): |
|
|
|
|
j_prologue.append( "Mat %s_mat = new Mat();" % a.name ) |
|
|
|
|
else: |
|
|
|
|
j_prologue.append( "Mat %s_mat = %s;" % (a.name, a.name) ) |
|
|
|
|
if "O" in a.out: |
|
|
|
|
if type_dict[a.ctype]["j_type"] != "Mat": |
|
|
|
|
if not type_dict[a.ctype]["j_type"].startswith("CvVector"): |
|
|
|
|
j_epilogue.append("Converters.Mat_to_%(t)s(%(n)s_mat, %(n)s);" % {"t" : a.ctype, "n" : a.name}) |
|
|
|
|
c_epilogue.append( "%(t)s_to_Mat( %(n)s, %(n)s_mat );" % {"n" : a.name, "t" : a.ctype} ) |
|
|
|
|
else: |
|
|
|
@ -1060,12 +1072,15 @@ extern "C" { |
|
|
|
|
tail = "" |
|
|
|
|
ret = "return retVal;" |
|
|
|
|
if ret_type.startswith('vector'): |
|
|
|
|
ret_val = "Mat retValMat = new Mat(" |
|
|
|
|
tail = ")" |
|
|
|
|
j_type = type_dict[ret_type]["j_type"] |
|
|
|
|
j_prologue.append( j_type + ' retVal = new Array' + j_type+'();') |
|
|
|
|
self.classes[fi.classname or self.Module].imports.add('java.util.ArrayList') |
|
|
|
|
j_epilogue.append('Converters.Mat_to_' + ret_type + '(retValMat, retVal);') |
|
|
|
|
if j_type.startswith('CvVector'): |
|
|
|
|
ret_val += "new " + j_type + "(" |
|
|
|
|
else: |
|
|
|
|
ret_val = "Mat retValMat = new Mat(" |
|
|
|
|
j_prologue.append( j_type + ' retVal = new Array' + j_type+'();') |
|
|
|
|
self.classes[fi.classname or self.Module].imports.add('java.util.ArrayList') |
|
|
|
|
j_epilogue.append('Converters.Mat_to_' + ret_type + '(retValMat, retVal);') |
|
|
|
|
elif ret_type == "void": |
|
|
|
|
ret_val = "" |
|
|
|
|
ret = "return;" |
|
|
|
|