config.cpp 8.7 KB

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