config.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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(cv::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_save" << m_cparam->image_save
  22. << "image_depository" << m_cparam->image_depository
  23. << "image_backup_days" << m_cparam->image_backup_days
  24. << "rs_grab_xmin" << m_cparam->rs_grab_xmin
  25. << "rs_grab_xmax" << m_cparam->rs_grab_xmax
  26. << "rs_grab_ymin" << m_cparam->rs_grab_ymin
  27. << "rs_grab_ymax" << m_cparam->rs_grab_ymax
  28. << "rs_grab_zmin" << m_cparam->rs_grab_zmin
  29. << "rs_grab_zmax" << m_cparam->rs_grab_zmax
  30. << "rs_grab_zcent" << m_cparam->rs_grab_zcent
  31. << "rs_grab_stem_diameter" << m_cparam->rs_grab_stem_diameter
  32. << "rs_grab_seedling_dist" << m_cparam->rs_grab_seedling_dist
  33. << "rs_grab_stem_min_pts" << m_cparam->rs_grab_stem_min_pts
  34. << "rs_grab_seedling_min_pts" << m_cparam->rs_grab_seedling_min_pts
  35. << "rs_grab_ror_ratio" << m_cparam->rs_grab_ror_ratio
  36. << "rs_grab_fork_ratio" << m_cparam->rs_grab_fork_ratio
  37. << "rs_grab_offset" << m_cparam->rs_grab_offset
  38. << "rs_grab_fork_yup" << m_cparam->rs_grab_fork_yup
  39. << "rs_grab_fork_ybt" << m_cparam->rs_grab_fork_ybt
  40. << "rs_grab_offset_cut" << m_cparam->rs_grab_offset_cut
  41. << "rs_grab_fork_height" << m_cparam->rs_grab_fork_height
  42. << "rs_grab_holes_number" << m_cparam->rs_grab_holes_number
  43. << "rs_grab_valid_stem_ratio" << m_cparam->rs_grab_valid_stem_ratio
  44. << "rs_grab_valid_occlusion_ratio" << m_cparam->rs_grab_valid_occlusion_ratio
  45. << "rs_grab_valid_overall_ratio" << m_cparam->rs_grab_valid_overall_ratio
  46. << "sc_grab_xmin" << m_cparam->sc_grab_xmin
  47. << "sc_grab_xmax" << m_cparam->sc_grab_xmax
  48. << "sc_grab_ymin" << m_cparam->sc_grab_ymin
  49. << "sc_grab_ymax" << m_cparam->sc_grab_ymax
  50. << "sc_grab_zmin" << m_cparam->sc_grab_zmin
  51. << "sc_grab_zmax" << m_cparam->sc_grab_zmax
  52. << "sc_grab_zcent" << m_cparam->sc_grab_zcent
  53. << "sc_grab_stem_diameter" << m_cparam->sc_grab_stem_diameter
  54. << "sc_grab_seedling_dist" << m_cparam->sc_grab_seedling_dist
  55. << "sc_grab_stem_min_pts" << m_cparam->sc_grab_stem_min_pts
  56. << "sc_grab_seedling_min_pts" << m_cparam->sc_grab_seedling_min_pts
  57. << "sc_grab_ror_ratio" << m_cparam->sc_grab_ror_ratio
  58. << "sc_grab_fork_ratio" << m_cparam->sc_grab_fork_ratio
  59. << "sc_grab_offset_nofork" << m_cparam->sc_grab_offset_nofork
  60. << "sc_grab_offset_bt" << m_cparam->sc_grab_offset_bt
  61. << "sc_grab_offset_up" << m_cparam->sc_grab_offset_up
  62. << "sc_grab_offset_normal" << m_cparam->sc_grab_offset_normal
  63. << "sc_grab_fork_yup" << m_cparam->sc_grab_fork_yup
  64. << "sc_grab_fork_ybt" << m_cparam->sc_grab_fork_ybt
  65. << "sc_grab_offset_cut" <<m_cparam->sc_grab_offset_cut
  66. << "sc_grab_fork_height" << m_cparam->sc_grab_fork_height
  67. << "sc_grab_holes_number" << m_cparam->sc_grab_holes_number
  68. << "sc_grab_valid_stem_ratio" << m_cparam->sc_grab_valid_stem_ratio
  69. << "sc_grab_valid_occlusion_ratio" << m_cparam->sc_grab_valid_occlusion_ratio
  70. << "sc_grab_valid_overall_ratio" << m_cparam->sc_grab_valid_overall_ratio
  71. << "}";
  72. };
  73. void CGCvConfig::read(const cv::FileNode& node){ //Read serialization for this class
  74. assert(m_cparam!=0);
  75. m_cparam->image_show = (bool)(int)node["image_show"];
  76. m_cparam->image_return = (bool)(int)node["image_return"];
  77. m_cparam->image_save = (bool)(int)node["image_save"];
  78. m_cparam->image_depository =(string)node["image_depository"];
  79. m_cparam->image_backup_days = (int)node["image_backup_days"];
  80. m_cparam->rs_grab_xmin = (double)node["rs_grab_xmin"];
  81. m_cparam->rs_grab_xmax = (double)node["rs_grab_xmax"];
  82. m_cparam->rs_grab_ymin = (double)node["rs_grab_ymin"];
  83. m_cparam->rs_grab_ymax = (double)node["rs_grab_ymax"];
  84. m_cparam->rs_grab_zmin = (double)node["rs_grab_zmin"];
  85. m_cparam->rs_grab_zmax = (double)node["rs_grab_zmax"];
  86. m_cparam->rs_grab_zcent = (double)node["rs_grab_zcent"];
  87. m_cparam->rs_grab_stem_diameter = (double)node["rs_grab_stem_diameter"];
  88. m_cparam->rs_grab_seedling_dist = (double)node["rs_grab_seedling_dist"];
  89. m_cparam->rs_grab_stem_min_pts = (int)node["rs_grab_stem_min_pts"];
  90. m_cparam->rs_grab_seedling_min_pts = (int)node["rs_grab_seedling_min_pts"];
  91. m_cparam->rs_grab_ror_ratio = (double)node["rs_grab_ror_ratio"];
  92. m_cparam->rs_grab_fork_ratio = (double)node["rs_grab_fork_ratio"];
  93. m_cparam->rs_grab_offset = (double)node["rs_grab_offset"];
  94. m_cparam->rs_grab_fork_yup = (double)node["rs_grab_fork_yup"];
  95. m_cparam->rs_grab_fork_ybt = (double)node["rs_grab_fork_ybt"];
  96. m_cparam->rs_grab_offset_cut = (double)node["rs_grab_offset_cut"];
  97. m_cparam->rs_grab_fork_height = (double)node["rs_grab_fork_height"];
  98. m_cparam->rs_grab_holes_number = (int)node["rs_grab_holes_number"];
  99. m_cparam->rs_grab_valid_stem_ratio = (double)node["rs_grab_valid_stem_ratio"];
  100. m_cparam->rs_grab_valid_occlusion_ratio = (double)node["rs_grab_valid_occlusion_ratio"];
  101. m_cparam->rs_grab_valid_overall_ratio = (double)node["rs_grab_valid_overall_ratio"];
  102. m_cparam->sc_grab_xmin = (double)node["sc_grab_xmin"];
  103. m_cparam->sc_grab_xmax = (double)node["sc_grab_xmax"];
  104. m_cparam->sc_grab_ymin = (double)node["sc_grab_ymin"];
  105. m_cparam->sc_grab_ymax = (double)node["sc_grab_ymax"];
  106. m_cparam->sc_grab_zmin = (double)node["sc_grab_zmin"];
  107. m_cparam->sc_grab_zmax = (double)node["sc_grab_zmax"];
  108. m_cparam->sc_grab_zcent = (double)node["sc_grab_zcent"];
  109. m_cparam->sc_grab_stem_diameter = (double)node["sc_grab_stem_diameter"];
  110. m_cparam->sc_grab_seedling_dist = (double)node["sc_grab_seedling_dist"];
  111. m_cparam->sc_grab_stem_min_pts = (int)node["sc_grab_stem_min_pts"];
  112. m_cparam->sc_grab_seedling_min_pts = (int)node["sc_grab_seedling_min_pts"];
  113. m_cparam->sc_grab_ror_ratio = (double)node["sc_grab_ror_ratio"];
  114. m_cparam->sc_grab_fork_ratio = (double)node["sc_grab_fork_ratio"];
  115. m_cparam->sc_grab_offset_nofork = (double)node["sc_grab_offset_nofork"];
  116. m_cparam->sc_grab_offset_bt = (double)node["sc_grab_offset_bt"];
  117. m_cparam->sc_grab_offset_up = (double)node["sc_grab_offset_up"];
  118. m_cparam->sc_grab_offset_normal = (double)node["sc_grab_offset_normal"];
  119. m_cparam->sc_grab_fork_yup = (double)node["sc_grab_fork_yup"];
  120. m_cparam->sc_grab_fork_ybt = (double)node["sc_grab_fork_ybt"];
  121. m_cparam->sc_grab_offset_cut = (double)node["sc_grab_offset_cut"];
  122. m_cparam->sc_grab_fork_height = (double)node["sc_grab_fork_height"];
  123. m_cparam->sc_grab_holes_number = (int)node["sc_grab_holes_number"];
  124. m_cparam->sc_grab_valid_stem_ratio = (double)node["sc_grab_valid_stem_ratio"];
  125. m_cparam->sc_grab_valid_occlusion_ratio = (double)node["sc_grab_valid_occlusion_ratio"];
  126. m_cparam->sc_grab_valid_overall_ratio = (double)node["sc_grab_valid_overall_ratio"];
  127. }
  128. string get_cparam_info(ConfigParam*m_cparam)
  129. {
  130. if(!m_cparam){return string("");}
  131. stringstream buff;
  132. buff << "{" << endl
  133. << "image_show:\t" << m_cparam->image_show << endl
  134. << "image_return:\t" << m_cparam->image_return << endl
  135. << "image_save:\t" << m_cparam->image_save << endl
  136. << "image_depository:\t" << m_cparam->image_depository << endl
  137. << "image_backup_days:\t" << m_cparam->image_backup_days << endl
  138. << "rs_grab_xmin:\t" << m_cparam->rs_grab_xmin << endl
  139. << "rs_grab_xmax:\t" << m_cparam->rs_grab_xmax << endl
  140. << "rs_grab_ymin:\t" << m_cparam->rs_grab_ymin << endl
  141. << "rs_grab_ymax:\t" << m_cparam->rs_grab_ymax << endl
  142. << "rs_grab_zmin:\t" << m_cparam->rs_grab_zmin << endl
  143. << "rs_grab_zmax:\t" << m_cparam->rs_grab_zmax << endl
  144. << "rs_grab_zcent:\t" << m_cparam->rs_grab_zcent << endl
  145. << "rs_grab_stem_diameter:\t" << m_cparam->rs_grab_stem_diameter << endl
  146. << "rs_grab_seedling_dist:\t" << m_cparam->rs_grab_seedling_dist << endl
  147. << "rs_grab_stem_min_pts:\t" << m_cparam->rs_grab_stem_min_pts << endl
  148. << "rs_grab_seedling_min_pts:\t" << m_cparam->rs_grab_seedling_min_pts << endl
  149. << "rs_grab_ror_ratio:\t" << m_cparam->rs_grab_ror_ratio << endl
  150. << "rs_grab_fork_ratio:\t" << m_cparam->rs_grab_fork_ratio << endl
  151. << "rs_grab_offset:\t" << m_cparam->rs_grab_offset << endl
  152. << "rs_grab_fork_yup:\t" << m_cparam->rs_grab_fork_yup << endl
  153. << "rs_grab_fork_ybt:\t" << m_cparam->rs_grab_fork_ybt << endl
  154. << "rs_grab_offset_cut:\t" << m_cparam->rs_grab_offset_cut<< endl
  155. << "rs_grab_fork_height:\t" << m_cparam->rs_grab_fork_height << endl
  156. << "rs_grab_holes_number:\t" << m_cparam->rs_grab_holes_number << endl
  157. << "rs_grab_valid_stem_ratio:\t" << m_cparam->rs_grab_valid_stem_ratio << endl
  158. << "rs_grab_valid_occlusion_ratio:\t" << m_cparam->rs_grab_valid_occlusion_ratio << endl
  159. << "rs_grab_valid_overall_ratio:\t" << m_cparam->rs_grab_valid_overall_ratio << endl
  160. << "sc_grab_xmin:\t" << m_cparam->sc_grab_xmin << endl
  161. << "sc_grab_xmax:\t" << m_cparam->sc_grab_xmax << endl
  162. << "sc_grab_ymin:\t" << m_cparam->sc_grab_ymin << endl
  163. << "sc_grab_ymax:\t" << m_cparam->sc_grab_ymax << endl
  164. << "sc_grab_zmin:\t" << m_cparam->sc_grab_zmin << endl
  165. << "sc_grab_zmax:\t" << m_cparam->sc_grab_zmax << endl
  166. << "sc_grab_zcent:\t" << m_cparam->sc_grab_zcent << endl
  167. << "sc_grab_stem_diameter:\t" << m_cparam->sc_grab_stem_diameter << endl
  168. << "sc_grab_seedling_dist:\t" << m_cparam->sc_grab_seedling_dist << endl
  169. << "sc_grab_stem_min_pts:\t" << m_cparam->sc_grab_stem_min_pts << endl
  170. << "sc_grab_seedling_min_pts:\t" << m_cparam->sc_grab_seedling_min_pts << endl
  171. << "sc_grab_ror_ratio:\t" << m_cparam->sc_grab_ror_ratio << endl
  172. << "sc_grab_fork_ratio:\t" << m_cparam->sc_grab_fork_ratio << endl
  173. << "sc_grab_offset_nofork:\t" << m_cparam->sc_grab_offset_nofork << endl
  174. << "sc_grab_offset_bt:\t" << m_cparam->sc_grab_offset_bt << endl
  175. << "sc_grab_offset_up:\t" << m_cparam->sc_grab_offset_up << endl
  176. << "sc_grab_offset_normal:\t" << m_cparam->sc_grab_offset_normal << endl
  177. << "sc_grab_fork_yup:\t" << m_cparam->sc_grab_fork_yup << endl
  178. << "sc_grab_fork_ybt:\t" << m_cparam->sc_grab_fork_ybt << endl
  179. << "sc_grab_offset_cut:\t" << m_cparam->sc_grab_offset_cut << endl
  180. << "sc_grab_fork_height:\t" << m_cparam->sc_grab_fork_height << endl
  181. << "sc_grab_holes_number:\t" << m_cparam->sc_grab_holes_number << endl
  182. << "sc_grab_valid_stem_ratio:\t" << m_cparam->sc_grab_valid_stem_ratio << endl
  183. << "sc_grab_valid_occlusion_ratio:\t" << m_cparam->sc_grab_valid_occlusion_ratio << endl
  184. << "sc_grab_valid_overall_ratio:\t" << m_cparam->sc_grab_valid_overall_ratio << endl
  185. << "}" << endl;
  186. return buff.str();
  187. }
  188. }