From 1bae6413c1549528e358da9f33785353d60e2b75 Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Fri, 26 Aug 2011 15:15:15 +0000 Subject: [PATCH] Java API: generator script whitespace cleanup, adding statistics gathering code --- modules/java/gen_java.py | 59 ++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/modules/java/gen_java.py b/modules/java/gen_java.py index 562499a826..1b4af54251 100644 --- a/modules/java/gen_java.py +++ b/modules/java/gen_java.py @@ -121,7 +121,7 @@ missing_consts = \ ), # private 'public' : ( - ('SVD_MODIFY_A', 1), ('SVD_NO_UV', 2), ('SVD_FULL_UV', 4), + ('SVD_MODIFY_A', 1), ('SVD_NO_UV', 2), ('SVD_FULL_UV', 4), ('FILLED', -1), ('LINE_AA', 16), ('LINE_8', 8), ('LINE_4', 4), ('REDUCE_SUM', 0), ('REDUCE_AVG', 1), ('REDUCE_MAX', 2), ('REDUCE_MIN', 3), @@ -481,10 +481,10 @@ JNIEXPORT jdoubleArray JNICALL Java_org_opencv_core_Core_n_1getTextSize "imshow" : {'j_code' : '', 'jn_code' : '', 'cpp_code' : '' }, "waitKey" : {'j_code' : '', 'jn_code' : '', 'cpp_code' : '' }, }, # Highgui - + 'CvANN_MLP_TrainParams': { - "CvANN_MLP_TrainParams" : + "CvANN_MLP_TrainParams" : { 'j_code' : """ //javadoc:CvANN_MLP_TrainParams::CvANN_MLP_TrainParams() @@ -502,10 +502,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvANN_1MLP_1TrainParams_n_1newObj """ }, }, - + 'CvBoostParams': { - "CvBoostParams" : + "CvBoostParams" : { 'j_code' : """ //javadoc:CvBoostParams::CvBoostParams() @@ -523,10 +523,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvBoostParams_n_1newObj """ }, }, - + 'CvDTreeParams': { - "CvDTreeParams" : + "CvDTreeParams" : { 'j_code' : """ //javadoc:CvDTreeParams::CvDTreeParams() @@ -544,10 +544,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvDTreeParams_n_1newObj """ }, }, - + 'CvEMParams': { - "CvEMParams" : + "CvEMParams" : { 'j_code' : """ //javadoc:CvEMParams::CvEMParams() @@ -565,10 +565,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvEMParams_n_1newObj """ }, }, - + 'CvGBTreesParams': { - "CvGBTreesParams" : + "CvGBTreesParams" : { 'j_code' : """ //javadoc:CvGBTreesParams::CvGBTreesParams() @@ -586,10 +586,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvGBTreesParams_n_1newObj """ }, }, - + 'CvParamGrid': { - "CvParamGrid" : + "CvParamGrid" : { 'j_code' : """ //javadoc:CvParamGrid::CvParamGrid() @@ -607,10 +607,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvParamGrid_n_1newObj """ }, }, - + 'CvRTParams': { - "CvRTParams" : + "CvRTParams" : { 'j_code' : """ //javadoc:CvRTParams::CvRTParams() @@ -628,10 +628,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvRTParams_n_1newObj """ }, }, - + 'CvStatModel': { - "CvStatModel" : + "CvStatModel" : { 'j_code' : """ //javadoc:CvStatModel::CvStatModel() @@ -649,10 +649,10 @@ JNIEXPORT jlong JNICALL Java_org_opencv_ml_CvStatModel_n_1newObj """ }, }, - + 'CvSVMParams': { - "CvSVMParams" : + "CvSVMParams" : { 'j_code' : """ //javadoc:CvSVMParams::CvSVMParams() @@ -700,7 +700,7 @@ func_arg_fix = { 'getAffineTransform' : { 'src' : 'vector_Point2f', 'dst' : 'vector_Point2f', }, 'hconcat' : { 'src' : 'vector_Mat', }, 'vconcat' : { 'src' : 'vector_Mat', }, - + }, # '', i.e. no class } # func_arg_fix @@ -806,6 +806,9 @@ class JavaWrapperGenerator(object): self.cpp_code = None self.ported_func_list = [] self.skipped_func_list = [] + self.def_args_hist = {} # { def_args_cnt : funcs_cnt } + self.classes_map = [] + self.classes_simple = [] def add_class_code_stream(self, class_name): jname = self.classes[class_name].jname @@ -862,6 +865,10 @@ public class %(jc)s { if name in type_dict: print "Duplicated class: " + name return + if '/Simple' in decl[2]: + self.classes_simple.append(name) + if '/Map' in decl[2]: + self.classes_map.append(name) type_dict[name] = \ { "j_type" : classinfo.jname, "jn_type" : "long", "jn_args" : (("__int64", ".nativeObj"),), @@ -946,6 +953,9 @@ public class %(jc)s { func_map[ffi.jname].add_func(ffi.funcs[0]) else: func_map[ffi.jname] = ffi + # calc args with def val + cnt = len([a for a in ffi.funcs[0].args if a.defval]) + self.def_args_hist[cnt] = self.def_args_hist.get(cnt, 0) + 1 def save(self, path, buf): f = open(path, "wt") @@ -971,7 +981,7 @@ public class %(jc)s { self.add_const(decl) else: # function self.add_func(decl) - + #FIXME: BackgroundSubtractor is merged into BackgroundSubtractorMOG because of inheritance if "BackgroundSubtractor" in self.classes: bs = self.classes["BackgroundSubtractor"] @@ -1034,6 +1044,13 @@ extern "C" { (len(self.skipped_func_list), len(self.ported_func_list)+ len(self.skipped_func_list)) ) report.write("".join(self.skipped_func_list)) + + for i in self.def_args_hist.keys(): + report.write("\n%i def args - %i funcs" % (i, self.def_args_hist[i])) + + report.write("\n\nclass as MAP:\n\t" + "\n\t".join(self.classes_map)) + report.write("\n\nclass SIMPLE:\n\t" + "\n\t".join(self.classes_simple)) + self.save(output_path+"/"+module+".txt", report.getvalue()) print "Done %i of %i funcs." % (len(self.ported_func_list), len(self.ported_func_list)+ len(self.skipped_func_list))