config.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. #include "config.h"
  2. #include <iostream>
  3. #define VNAME(value) (#value)
  4. namespace graft_cv{
  5. CGCvConfig::CGCvConfig()
  6. :m_cparam(0)
  7. {
  8. };
  9. CGCvConfig::~CGCvConfig()
  10. {
  11. };
  12. void CGCvConfig::setConfParam(ConfigParam*cp)
  13. {
  14. m_cparam = cp;
  15. }
  16. void CGCvConfig::write(FileStorage &fs)const{
  17. assert(m_cparam!=0);
  18. fs << "{"
  19. << "image_show"<< m_cparam->image_show
  20. << "image_return"<< m_cparam->image_return
  21. << "image_row_grid"<< m_cparam->image_row_grid
  22. << "image_col_grid"<< m_cparam->image_col_grid
  23. << "self_camera"<< m_cparam->self_camera
  24. <<"timeout_proc"<<m_cparam->timeout_proc
  25. <<"timeout_append"<<m_cparam->timeout_append
  26. <<"image_save"<<m_cparam->image_save
  27. <<"image_depository"<<m_cparam->image_depository
  28. <<"image_backup_days"<<m_cparam->image_backup_days
  29. << "oa_y_flip"<< m_cparam->oa_y_flip
  30. << "oa_morph_radius"<< m_cparam->oa_morph_radius
  31. << "oa_morph_iteration" << m_cparam->oa_morph_iteration
  32. << "oa_min_hist_value"<< m_cparam->oa_min_hist_value
  33. << "oa_morph_radius_base"<< m_cparam->oa_morph_radius_base
  34. << "oa_morph_iteration_base" << m_cparam->oa_morph_iteration_base
  35. << "oa_min_hist_value_base"<< m_cparam->oa_min_hist_value_base
  36. << "oa_col_th_ratio"<< m_cparam->oa_col_th_ratio
  37. << "oa_row_th_ratio"<< m_cparam->oa_row_th_ratio
  38. << "oa_stem_x_padding"<< m_cparam->oa_stem_x_padding
  39. << "oa_stem_dia_min"<< m_cparam->oa_stem_dia_min
  40. << "oa_stem_fork_y_min"<< m_cparam->oa_stem_fork_y_min
  41. << "oa_stem_dia_mp"<< m_cparam->oa_stem_dia_mp
  42. << "oa_clip_y_min"<< m_cparam->oa_clip_y_min
  43. << "oa_clip_y_max"<<m_cparam->oa_clip_y_max
  44. << "rs_y_flip"<< m_cparam->rs_y_flip
  45. << "rs_min_hist_value"<< m_cparam->rs_min_hist_value
  46. << "rs_col_th_ratio" << m_cparam->rs_col_th_ratio
  47. << "rs_row_th_ratio" << m_cparam->rs_row_th_ratio
  48. << "rs_stem_x_padding" << m_cparam->rs_stem_x_padding
  49. << "rs_stem_dia_min" << m_cparam->rs_stem_dia_min
  50. << "rs_stem_dia_mp" << m_cparam->rs_stem_dia_mp
  51. << "rs_stem_fork_y_min" << m_cparam->rs_stem_fork_y_min
  52. << "rs_stem_edge_detect_window" << m_cparam->rs_stem_edge_detect_window
  53. << "rs_cand_corner_box_width_ratio" << m_cparam->rs_cand_corner_box_width_ratio
  54. << "rs_cand_corner_box_xoffset_ratio" << m_cparam->rs_cand_corner_box_xoffset_ratio
  55. << "rs_opt_corner_xoffset_ratio" << m_cparam->rs_opt_corner_xoffset_ratio
  56. << "rs_opt_corner_yoffset_ratio" << m_cparam->rs_opt_corner_yoffset_ratio
  57. <<"rs_corner_mask_rad_ratio"<<m_cparam->rs_corner_mask_rad_ratio
  58. << "rs_morph_radius" << m_cparam->rs_morph_radius
  59. << "rs_morph_iteration" << m_cparam->rs_morph_iteration
  60. << "rs_morph_iteration_gray" << m_cparam->rs_morph_iteration_gray
  61. << "rs_max_corner_num" << m_cparam->rs_max_corner_num
  62. << "rs_corner_qaulity_level" << m_cparam->rs_corner_qaulity_level
  63. << "rs_corner_min_distance" << m_cparam->rs_corner_min_distance
  64. << "rs_cut_angle" << m_cparam->rs_cut_angle
  65. << "rs_cut_point_offset_ratio"<< m_cparam->rs_cut_point_offset_ratio
  66. << "sc_y_flip"<< m_cparam->sc_y_flip
  67. << "sc_col_th_ratio" << m_cparam->sc_col_th_ratio
  68. << "sc_row_th_ratio" << m_cparam->sc_row_th_ratio
  69. << "sc_stem_x_padding" << m_cparam->sc_stem_x_padding
  70. << "sc_stem_dia_min"<< m_cparam->sc_stem_dia_min
  71. << "sc_clip_padding" << m_cparam->sc_clip_padding
  72. << "sc_stem_ymax_padding" << m_cparam->sc_stem_ymax_padding
  73. << "sc_default_cut_length" << m_cparam->sc_default_cut_length
  74. << "sc_stem_edge_detect_window" << m_cparam->sc_stem_edge_detect_window
  75. << "sc_r2_th" << m_cparam->sc_r2_th
  76. << "sc_r2_window" << m_cparam->sc_r2_window
  77. << "sc_average_window" << m_cparam->sc_average_window
  78. << "sc_morph_radius" << m_cparam->sc_morph_radius
  79. << "sc_morph_iteration" << m_cparam->sc_morph_iteration
  80. << "rs_oa_pixel_ratio" << m_cparam->rs_oa_pixel_ratio
  81. << "rs_cut_pixel_ratio" << m_cparam->rs_cut_pixel_ratio
  82. << "sc_cut_pixel_ratio" << m_cparam->sc_cut_pixel_ratio
  83. << "}";
  84. };
  85. void CGCvConfig::read(const FileNode& node){ //Read serialization for this class
  86. assert(m_cparam!=0);
  87. m_cparam->image_show = (bool)(int)node["image_show"];
  88. m_cparam->image_return = (bool)(int)node["image_return"];
  89. m_cparam->image_row_grid = (int)node["image_row_grid"];
  90. m_cparam->image_col_grid = (int)node["image_col_grid"];
  91. m_cparam->self_camera = (bool)(int)node["self_camera"];
  92. m_cparam->timeout_proc = (int)node["timeout_proc"];
  93. m_cparam->timeout_append = (int)node["timeout_append"];
  94. m_cparam->image_save = (bool)(int)node["image_save"];
  95. m_cparam->image_depository =(string)node["image_depository"];
  96. m_cparam->image_backup_days = (int)node["image_backup_days"];
  97. m_cparam->oa_y_flip = (bool)(int)node["oa_y_flip"];
  98. m_cparam->rs_min_hist_value = (int)node["rs_min_hist_value"];
  99. m_cparam->oa_morph_radius = (int)node["oa_morph_radius"];
  100. m_cparam->oa_morph_iteration = (int)node["oa_morph_iteration"];
  101. m_cparam->oa_min_hist_value = (int)node["oa_min_hist_value"];
  102. m_cparam->oa_morph_radius_base = (int)node["oa_morph_radius_base"];
  103. m_cparam->oa_morph_iteration_base = (int)node["oa_morph_iteration_base"];
  104. m_cparam->oa_min_hist_value_base = (int)node["oa_min_hist_value_base"];
  105. m_cparam->oa_col_th_ratio = (double)node["oa_col_th_ratio"];
  106. m_cparam->oa_row_th_ratio = (double)node["oa_row_th_ratio"];
  107. m_cparam->oa_stem_x_padding = (int)node["oa_stem_x_padding"];
  108. m_cparam->oa_stem_dia_min = (int)node["oa_stem_dia_min"];
  109. m_cparam->oa_stem_fork_y_min = (int)node["oa_stem_fork_y_min"];
  110. m_cparam->oa_stem_dia_mp = (double)node["oa_stem_dia_mp"];
  111. m_cparam->oa_clip_y_min = (int)node["oa_clip_y_min"];
  112. m_cparam->oa_clip_y_max = (int)node["oa_clip_y_max"];
  113. m_cparam->rs_y_flip = (bool)(int)node["rs_y_flip"];
  114. m_cparam->rs_col_th_ratio = (double)node["rs_col_th_ratio"];
  115. m_cparam->rs_row_th_ratio = (double)node["rs_row_th_ratio"];
  116. m_cparam->rs_stem_x_padding = (int)node["rs_stem_x_padding"];
  117. m_cparam->rs_stem_dia_min = (int)node["rs_stem_dia_min"];
  118. m_cparam->rs_stem_dia_mp = (double)node["rs_stem_dia_mp"];
  119. m_cparam->rs_stem_fork_y_min = (int)node["rs_stem_fork_y_min"];
  120. m_cparam->rs_stem_edge_detect_window = (int)node["rs_stem_edge_detect_window"];
  121. m_cparam->rs_cand_corner_box_width_ratio = (double)node["rs_cand_corner_box_width_ratio"];
  122. m_cparam->rs_cand_corner_box_xoffset_ratio = (double)node["rs_cand_corner_box_xoffset_ratio"];
  123. m_cparam->rs_opt_corner_xoffset_ratio = (double)node["rs_opt_corner_xoffset_ratio"];
  124. m_cparam->rs_opt_corner_yoffset_ratio = (double)node["rs_opt_corner_yoffset_ratio"];
  125. m_cparam->rs_corner_mask_rad_ratio = (double)node["rs_corner_mask_rad_ratio"];
  126. m_cparam->rs_morph_radius = (int)node["rs_morph_radius"];
  127. m_cparam->rs_morph_iteration = (int)node["rs_morph_iteration"];
  128. m_cparam->rs_morph_iteration_gray = (int)node["rs_morph_iteration_gray"];
  129. m_cparam->rs_max_corner_num = (int)node["rs_max_corner_num"];
  130. m_cparam->rs_corner_qaulity_level = (double)node["rs_corner_qaulity_level"];
  131. m_cparam->rs_corner_min_distance = (double)node["rs_corner_min_distance"];
  132. m_cparam->rs_cut_angle = (double)node["rs_cut_angle"];
  133. m_cparam->rs_cut_point_offset_ratio = (double)node["rs_cut_point_offset_ratio"];
  134. m_cparam->sc_y_flip = (bool)(int)node["sc_y_flip"];
  135. m_cparam->sc_col_th_ratio = (double)node["sc_col_th_ratio"];
  136. m_cparam->sc_row_th_ratio = (double)node["sc_row_th_ratio"];
  137. m_cparam->sc_stem_x_padding = (int)node["sc_stem_x_padding"];
  138. m_cparam->sc_stem_dia_min = (int)node["sc_stem_dia_min"];
  139. m_cparam->sc_clip_padding = (int)node["sc_clip_padding"];
  140. m_cparam->sc_stem_ymax_padding = (int)node["sc_stem_ymax_padding"];
  141. m_cparam->sc_default_cut_length = (int)node["sc_default_cut_length"];
  142. m_cparam->sc_stem_edge_detect_window = (int)node["sc_stem_edge_detect_window"];
  143. m_cparam->sc_r2_th = (double)node["sc_r2_th"];
  144. m_cparam->sc_r2_window = (int)node["sc_r2_window"];
  145. m_cparam->sc_average_window = (int)node["sc_average_window"];
  146. m_cparam->sc_morph_radius = (int)node["sc_morph_radius"];
  147. m_cparam->sc_morph_iteration = (int)node["sc_morph_iteration"];
  148. m_cparam->rs_oa_pixel_ratio = (double)node["rs_oa_pixel_ratio"];
  149. m_cparam->rs_cut_pixel_ratio = (double)node["rs_cut_pixel_ratio"];
  150. m_cparam->sc_cut_pixel_ratio = (double)node["sc_cut_pixel_ratio"];
  151. }
  152. string get_cparam_info(ConfigParam*m_cparam)
  153. {
  154. if(!m_cparam){return string("");}
  155. stringstream buff;
  156. buff << "{" <<endl
  157. << "image_show:\t"<< m_cparam->image_show << endl
  158. << "image_return:\t"<< m_cparam->image_return << endl
  159. << "image_row_grid:\t"<< m_cparam->image_row_grid << endl
  160. << "image_col_grid:\t"<< m_cparam->image_col_grid << endl
  161. << "self_camera:\t"<< m_cparam->self_camera << endl
  162. <<"timeout_proc:\t"<<m_cparam->timeout_proc << endl
  163. <<"timeout_append:\t"<<m_cparam->timeout_append << endl
  164. <<"image_save:\t"<<m_cparam->image_save << endl
  165. <<"image_depository:\t"<<m_cparam->image_depository << endl
  166. <<"image_backup_days:\t"<<m_cparam->image_backup_days << endl
  167. << "oa_y_flip:\t"<< m_cparam->oa_y_flip << endl
  168. << "oa_morph_radius:\t"<< m_cparam->oa_morph_radius << endl
  169. << "oa_morph_iteration:\t" << m_cparam->oa_morph_iteration << endl
  170. << "oa_min_hist_value:\t"<< m_cparam->oa_min_hist_value << endl
  171. << "oa_morph_radius_base:\t"<< m_cparam->oa_morph_radius_base << endl
  172. << "oa_morph_iteration_base:\t" << m_cparam->oa_morph_iteration_base << endl
  173. << "oa_min_hist_value_base:\t"<< m_cparam->oa_min_hist_value_base << endl
  174. << "oa_col_th_ratio:\t"<< m_cparam->oa_col_th_ratio << endl
  175. << "oa_row_th_ratio:\t"<< m_cparam->oa_row_th_ratio << endl
  176. << "oa_stem_x_padding:\t"<< m_cparam->oa_stem_x_padding << endl
  177. << "oa_stem_dia_min:\t"<< m_cparam->oa_stem_dia_min << endl
  178. << "oa_stem_fork_y_min:\t"<< m_cparam->oa_stem_fork_y_min << endl
  179. << "oa_stem_dia_mp:\t"<< m_cparam->oa_stem_dia_mp << endl
  180. << "oa_clip_y_min:\t"<< m_cparam->oa_clip_y_min << endl
  181. << "oa_clip_y_max:\t"<<m_cparam->oa_clip_y_max << endl
  182. << "rs_y_flip:\t"<< m_cparam->rs_y_flip << endl
  183. << "rs_min_hist_value:\t"<< m_cparam->rs_min_hist_value << endl
  184. << "rs_col_th_ratio:\t" << m_cparam->rs_col_th_ratio << endl
  185. << "rs_row_th_ratio:\t" << m_cparam->rs_row_th_ratio << endl
  186. << "rs_stem_x_padding:\t" << m_cparam->rs_stem_x_padding << endl
  187. << "rs_stem_dia_min:\t" << m_cparam->rs_stem_dia_min << endl
  188. << "rs_stem_dia_mp:\t" << m_cparam->rs_stem_dia_mp << endl
  189. << "rs_stem_fork_y_min:\t" << m_cparam->rs_stem_fork_y_min << endl
  190. << "rs_stem_edge_detect_window:\t" << m_cparam->rs_stem_edge_detect_window << endl
  191. << "rs_cand_corner_box_width_ratio:\t" << m_cparam->rs_cand_corner_box_width_ratio << endl
  192. << "rs_cand_corner_box_xoffset_ratio:\t" << m_cparam->rs_cand_corner_box_xoffset_ratio << endl
  193. << "rs_opt_corner_xoffset_ratio:\t" << m_cparam->rs_opt_corner_xoffset_ratio << endl
  194. << "rs_opt_corner_yoffset_ratio:\t" << m_cparam->rs_opt_corner_yoffset_ratio << endl
  195. <<"rs_corner_mask_rad_ratio:\t"<<m_cparam->rs_corner_mask_rad_ratio << endl
  196. << "rs_morph_radius:\t" << m_cparam->rs_morph_radius << endl
  197. << "rs_morph_iteration:\t" << m_cparam->rs_morph_iteration << endl
  198. << "rs_morph_iteration_gray:\t" << m_cparam->rs_morph_iteration_gray << endl
  199. << "rs_max_corner_num:\t" << m_cparam->rs_max_corner_num << endl
  200. << "rs_corner_qaulity_level:\t" << m_cparam->rs_corner_qaulity_level << endl
  201. << "rs_corner_min_distance:\t" << m_cparam->rs_corner_min_distance << endl
  202. << "rs_cut_angle:\t" << m_cparam->rs_cut_angle << endl
  203. << "rs_cut_point_offset_ratio:\t"<< m_cparam->rs_cut_point_offset_ratio << endl
  204. << "sc_y_flip:\t"<< m_cparam->sc_y_flip << endl
  205. << "sc_col_th_ratio:\t" << m_cparam->sc_col_th_ratio << endl
  206. << "sc_row_th_ratio:\t" << m_cparam->sc_row_th_ratio << endl
  207. << "sc_stem_x_padding:\t" << m_cparam->sc_stem_x_padding << endl
  208. << "sc_stem_dia_min:\t"<< m_cparam->sc_stem_dia_min << endl
  209. << "sc_clip_padding:\t" << m_cparam->sc_clip_padding << endl
  210. << "sc_stem_ymax_padding:\t" << m_cparam->sc_stem_ymax_padding << endl
  211. << "sc_default_cut_length:\t" << m_cparam->sc_default_cut_length << endl
  212. << "sc_stem_edge_detect_window:\t" << m_cparam->sc_stem_edge_detect_window << endl
  213. << "sc_r2_th:\t" << m_cparam->sc_r2_th << endl
  214. << "sc_r2_window:\t" << m_cparam->sc_r2_window << endl
  215. << "sc_average_window:\t" << m_cparam->sc_average_window << endl
  216. << "sc_morph_radius:\t" << m_cparam->sc_morph_radius << endl
  217. << "sc_morph_iteration:\t" << m_cparam->sc_morph_iteration << endl
  218. << "rs_oa_pixel_ratio:\t" << m_cparam->rs_oa_pixel_ratio << endl
  219. << "rs_cut_pixel_ratio:\t" << m_cparam->rs_cut_pixel_ratio << endl
  220. << "sc_cut_pixel_ratio:\t" << m_cparam->sc_cut_pixel_ratio << endl
  221. << "}" << endl;
  222. return buff.str();
  223. }
  224. }