123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- #include "config.h"
- #include <iostream>
- #define VNAME(value) (#value)
- namespace graft_cv{
- CGCvConfig::CGCvConfig()
- :m_cparam(0)
- {
- };
- CGCvConfig::~CGCvConfig()
- {
- };
- void CGCvConfig::setConfParam(ConfigParam*cp)
- {
- m_cparam = cp;
- }
- void CGCvConfig::write(FileStorage &fs)const{
- assert(m_cparam!=0);
- fs << "{"
- << "image_show"<< m_cparam->image_show
- << "image_return"<< m_cparam->image_return
- << "image_row_grid"<< m_cparam->image_row_grid
- << "image_col_grid"<< m_cparam->image_col_grid
- << "self_camera"<< m_cparam->self_camera
- <<"timeout_proc"<<m_cparam->timeout_proc
- <<"timeout_append"<<m_cparam->timeout_append
- <<"image_save"<<m_cparam->image_save
- <<"image_depository"<<m_cparam->image_depository
- <<"image_backup_days"<<m_cparam->image_backup_days
- << "oa_y_flip"<< m_cparam->oa_y_flip
- << "oa_morph_radius"<< m_cparam->oa_morph_radius
- << "oa_morph_iteration" << m_cparam->oa_morph_iteration
- << "oa_min_hist_value"<< m_cparam->oa_min_hist_value
- << "oa_morph_radius_base"<< m_cparam->oa_morph_radius_base
- << "oa_morph_iteration_base" << m_cparam->oa_morph_iteration_base
- << "oa_min_hist_value_base"<< m_cparam->oa_min_hist_value_base
- << "oa_col_th_ratio"<< m_cparam->oa_col_th_ratio
- << "oa_row_th_ratio"<< m_cparam->oa_row_th_ratio
- << "oa_stem_x_padding"<< m_cparam->oa_stem_x_padding
- << "oa_stem_dia_min"<< m_cparam->oa_stem_dia_min
- << "oa_stem_fork_y_min"<< m_cparam->oa_stem_fork_y_min
- << "oa_stem_dia_mp"<< m_cparam->oa_stem_dia_mp
- << "oa_clip_y_min"<< m_cparam->oa_clip_y_min
- << "oa_clip_y_max"<<m_cparam->oa_clip_y_max
- << "rs_y_flip"<< m_cparam->rs_y_flip
- << "rs_min_hist_value"<< m_cparam->rs_min_hist_value
- << "rs_col_th_ratio" << m_cparam->rs_col_th_ratio
- << "rs_row_th_ratio" << m_cparam->rs_row_th_ratio
- << "rs_stem_x_padding" << m_cparam->rs_stem_x_padding
- << "rs_stem_dia_min" << m_cparam->rs_stem_dia_min
- << "rs_stem_dia_mp" << m_cparam->rs_stem_dia_mp
- << "rs_stem_fork_y_min" << m_cparam->rs_stem_fork_y_min
- << "rs_stem_edge_detect_window" << m_cparam->rs_stem_edge_detect_window
- << "rs_cand_corner_box_width_ratio" << m_cparam->rs_cand_corner_box_width_ratio
- << "rs_cand_corner_box_xoffset_ratio" << m_cparam->rs_cand_corner_box_xoffset_ratio
- << "rs_opt_corner_xoffset_ratio" << m_cparam->rs_opt_corner_xoffset_ratio
- << "rs_opt_corner_yoffset_ratio" << m_cparam->rs_opt_corner_yoffset_ratio
- <<"rs_corner_mask_rad_ratio"<<m_cparam->rs_corner_mask_rad_ratio
- << "rs_morph_radius" << m_cparam->rs_morph_radius
- << "rs_morph_iteration" << m_cparam->rs_morph_iteration
- << "rs_morph_iteration_gray" << m_cparam->rs_morph_iteration_gray
- << "rs_max_corner_num" << m_cparam->rs_max_corner_num
- << "rs_corner_qaulity_level" << m_cparam->rs_corner_qaulity_level
- << "rs_corner_min_distance" << m_cparam->rs_corner_min_distance
- << "rs_cut_angle" << m_cparam->rs_cut_angle
- << "rs_cut_point_offset_ratio"<< m_cparam->rs_cut_point_offset_ratio
-
- << "sc_y_flip"<< m_cparam->sc_y_flip
- << "sc_col_th_ratio" << m_cparam->sc_col_th_ratio
- << "sc_row_th_ratio" << m_cparam->sc_row_th_ratio
- << "sc_stem_x_padding" << m_cparam->sc_stem_x_padding
- << "sc_stem_dia_min"<< m_cparam->sc_stem_dia_min
- << "sc_clip_padding" << m_cparam->sc_clip_padding
- << "sc_stem_ymax_padding" << m_cparam->sc_stem_ymax_padding
- << "sc_default_cut_length" << m_cparam->sc_default_cut_length
- << "sc_stem_edge_detect_window" << m_cparam->sc_stem_edge_detect_window
- << "sc_r2_th" << m_cparam->sc_r2_th
- << "sc_r2_window" << m_cparam->sc_r2_window
- << "sc_average_window" << m_cparam->sc_average_window
- << "sc_morph_radius" << m_cparam->sc_morph_radius
- << "sc_morph_iteration" << m_cparam->sc_morph_iteration
-
- << "rs_oa_pixel_ratio" << m_cparam->rs_oa_pixel_ratio
- << "rs_cut_pixel_ratio" << m_cparam->rs_cut_pixel_ratio
- << "sc_cut_pixel_ratio" << m_cparam->sc_cut_pixel_ratio
- << "}";
- };
- void CGCvConfig::read(const FileNode& node){ //Read serialization for this class
- assert(m_cparam!=0);
- m_cparam->image_show = (bool)(int)node["image_show"];
- m_cparam->image_return = (bool)(int)node["image_return"];
- m_cparam->image_row_grid = (int)node["image_row_grid"];
- m_cparam->image_col_grid = (int)node["image_col_grid"];
- m_cparam->self_camera = (bool)(int)node["self_camera"];
- m_cparam->timeout_proc = (int)node["timeout_proc"];
- m_cparam->timeout_append = (int)node["timeout_append"];
- m_cparam->image_save = (bool)(int)node["image_save"];
- m_cparam->image_depository =(string)node["image_depository"];
- m_cparam->image_backup_days = (int)node["image_backup_days"];
- m_cparam->oa_y_flip = (bool)(int)node["oa_y_flip"];
- m_cparam->rs_min_hist_value = (int)node["rs_min_hist_value"];
- m_cparam->oa_morph_radius = (int)node["oa_morph_radius"];
- m_cparam->oa_morph_iteration = (int)node["oa_morph_iteration"];
- m_cparam->oa_min_hist_value = (int)node["oa_min_hist_value"];
- m_cparam->oa_morph_radius_base = (int)node["oa_morph_radius_base"];
- m_cparam->oa_morph_iteration_base = (int)node["oa_morph_iteration_base"];
- m_cparam->oa_min_hist_value_base = (int)node["oa_min_hist_value_base"];
- m_cparam->oa_col_th_ratio = (double)node["oa_col_th_ratio"];
- m_cparam->oa_row_th_ratio = (double)node["oa_row_th_ratio"];
- m_cparam->oa_stem_x_padding = (int)node["oa_stem_x_padding"];
- m_cparam->oa_stem_dia_min = (int)node["oa_stem_dia_min"];
- m_cparam->oa_stem_fork_y_min = (int)node["oa_stem_fork_y_min"];
- m_cparam->oa_stem_dia_mp = (double)node["oa_stem_dia_mp"];
- m_cparam->oa_clip_y_min = (int)node["oa_clip_y_min"];
- m_cparam->oa_clip_y_max = (int)node["oa_clip_y_max"];
- m_cparam->rs_y_flip = (bool)(int)node["rs_y_flip"];
- m_cparam->rs_col_th_ratio = (double)node["rs_col_th_ratio"];
- m_cparam->rs_row_th_ratio = (double)node["rs_row_th_ratio"];
- m_cparam->rs_stem_x_padding = (int)node["rs_stem_x_padding"];
- m_cparam->rs_stem_dia_min = (int)node["rs_stem_dia_min"];
- m_cparam->rs_stem_dia_mp = (double)node["rs_stem_dia_mp"];
- m_cparam->rs_stem_fork_y_min = (int)node["rs_stem_fork_y_min"];
- m_cparam->rs_stem_edge_detect_window = (int)node["rs_stem_edge_detect_window"];
- m_cparam->rs_cand_corner_box_width_ratio = (double)node["rs_cand_corner_box_width_ratio"];
- m_cparam->rs_cand_corner_box_xoffset_ratio = (double)node["rs_cand_corner_box_xoffset_ratio"];
- m_cparam->rs_opt_corner_xoffset_ratio = (double)node["rs_opt_corner_xoffset_ratio"];
- m_cparam->rs_opt_corner_yoffset_ratio = (double)node["rs_opt_corner_yoffset_ratio"];
- m_cparam->rs_corner_mask_rad_ratio = (double)node["rs_corner_mask_rad_ratio"];
- m_cparam->rs_morph_radius = (int)node["rs_morph_radius"];
- m_cparam->rs_morph_iteration = (int)node["rs_morph_iteration"];
- m_cparam->rs_morph_iteration_gray = (int)node["rs_morph_iteration_gray"];
- m_cparam->rs_max_corner_num = (int)node["rs_max_corner_num"];
- m_cparam->rs_corner_qaulity_level = (double)node["rs_corner_qaulity_level"];
- m_cparam->rs_corner_min_distance = (double)node["rs_corner_min_distance"];
- m_cparam->rs_cut_angle = (double)node["rs_cut_angle"];
- m_cparam->rs_cut_point_offset_ratio = (double)node["rs_cut_point_offset_ratio"];
- m_cparam->sc_y_flip = (bool)(int)node["sc_y_flip"];
- m_cparam->sc_col_th_ratio = (double)node["sc_col_th_ratio"];
- m_cparam->sc_row_th_ratio = (double)node["sc_row_th_ratio"];
- m_cparam->sc_stem_x_padding = (int)node["sc_stem_x_padding"];
- m_cparam->sc_stem_dia_min = (int)node["sc_stem_dia_min"];
- m_cparam->sc_clip_padding = (int)node["sc_clip_padding"];
- m_cparam->sc_stem_ymax_padding = (int)node["sc_stem_ymax_padding"];
- m_cparam->sc_default_cut_length = (int)node["sc_default_cut_length"];
- m_cparam->sc_stem_edge_detect_window = (int)node["sc_stem_edge_detect_window"];
- m_cparam->sc_r2_th = (double)node["sc_r2_th"];
- m_cparam->sc_r2_window = (int)node["sc_r2_window"];
- m_cparam->sc_average_window = (int)node["sc_average_window"];
- m_cparam->sc_morph_radius = (int)node["sc_morph_radius"];
- m_cparam->sc_morph_iteration = (int)node["sc_morph_iteration"];
- m_cparam->rs_oa_pixel_ratio = (double)node["rs_oa_pixel_ratio"];
- m_cparam->rs_cut_pixel_ratio = (double)node["rs_cut_pixel_ratio"];
- m_cparam->sc_cut_pixel_ratio = (double)node["sc_cut_pixel_ratio"];
-
- }
- string get_cparam_info(ConfigParam*m_cparam)
- {
- if(!m_cparam){return string("");}
- stringstream buff;
- buff << "{" <<endl
- << "image_show:\t"<< m_cparam->image_show << endl
- << "image_return:\t"<< m_cparam->image_return << endl
- << "image_row_grid:\t"<< m_cparam->image_row_grid << endl
- << "image_col_grid:\t"<< m_cparam->image_col_grid << endl
- << "self_camera:\t"<< m_cparam->self_camera << endl
- <<"timeout_proc:\t"<<m_cparam->timeout_proc << endl
- <<"timeout_append:\t"<<m_cparam->timeout_append << endl
- <<"image_save:\t"<<m_cparam->image_save << endl
- <<"image_depository:\t"<<m_cparam->image_depository << endl
- <<"image_backup_days:\t"<<m_cparam->image_backup_days << endl
- << "oa_y_flip:\t"<< m_cparam->oa_y_flip << endl
- << "oa_morph_radius:\t"<< m_cparam->oa_morph_radius << endl
- << "oa_morph_iteration:\t" << m_cparam->oa_morph_iteration << endl
- << "oa_min_hist_value:\t"<< m_cparam->oa_min_hist_value << endl
- << "oa_morph_radius_base:\t"<< m_cparam->oa_morph_radius_base << endl
- << "oa_morph_iteration_base:\t" << m_cparam->oa_morph_iteration_base << endl
- << "oa_min_hist_value_base:\t"<< m_cparam->oa_min_hist_value_base << endl
- << "oa_col_th_ratio:\t"<< m_cparam->oa_col_th_ratio << endl
- << "oa_row_th_ratio:\t"<< m_cparam->oa_row_th_ratio << endl
- << "oa_stem_x_padding:\t"<< m_cparam->oa_stem_x_padding << endl
- << "oa_stem_dia_min:\t"<< m_cparam->oa_stem_dia_min << endl
- << "oa_stem_fork_y_min:\t"<< m_cparam->oa_stem_fork_y_min << endl
- << "oa_stem_dia_mp:\t"<< m_cparam->oa_stem_dia_mp << endl
- << "oa_clip_y_min:\t"<< m_cparam->oa_clip_y_min << endl
- << "oa_clip_y_max:\t"<<m_cparam->oa_clip_y_max << endl
- << "rs_y_flip:\t"<< m_cparam->rs_y_flip << endl
- << "rs_min_hist_value:\t"<< m_cparam->rs_min_hist_value << endl
- << "rs_col_th_ratio:\t" << m_cparam->rs_col_th_ratio << endl
- << "rs_row_th_ratio:\t" << m_cparam->rs_row_th_ratio << endl
- << "rs_stem_x_padding:\t" << m_cparam->rs_stem_x_padding << endl
- << "rs_stem_dia_min:\t" << m_cparam->rs_stem_dia_min << endl
- << "rs_stem_dia_mp:\t" << m_cparam->rs_stem_dia_mp << endl
- << "rs_stem_fork_y_min:\t" << m_cparam->rs_stem_fork_y_min << endl
- << "rs_stem_edge_detect_window:\t" << m_cparam->rs_stem_edge_detect_window << endl
- << "rs_cand_corner_box_width_ratio:\t" << m_cparam->rs_cand_corner_box_width_ratio << endl
- << "rs_cand_corner_box_xoffset_ratio:\t" << m_cparam->rs_cand_corner_box_xoffset_ratio << endl
- << "rs_opt_corner_xoffset_ratio:\t" << m_cparam->rs_opt_corner_xoffset_ratio << endl
- << "rs_opt_corner_yoffset_ratio:\t" << m_cparam->rs_opt_corner_yoffset_ratio << endl
- <<"rs_corner_mask_rad_ratio:\t"<<m_cparam->rs_corner_mask_rad_ratio << endl
- << "rs_morph_radius:\t" << m_cparam->rs_morph_radius << endl
- << "rs_morph_iteration:\t" << m_cparam->rs_morph_iteration << endl
- << "rs_morph_iteration_gray:\t" << m_cparam->rs_morph_iteration_gray << endl
- << "rs_max_corner_num:\t" << m_cparam->rs_max_corner_num << endl
- << "rs_corner_qaulity_level:\t" << m_cparam->rs_corner_qaulity_level << endl
- << "rs_corner_min_distance:\t" << m_cparam->rs_corner_min_distance << endl
- << "rs_cut_angle:\t" << m_cparam->rs_cut_angle << endl
- << "rs_cut_point_offset_ratio:\t"<< m_cparam->rs_cut_point_offset_ratio << endl
-
- << "sc_y_flip:\t"<< m_cparam->sc_y_flip << endl
- << "sc_col_th_ratio:\t" << m_cparam->sc_col_th_ratio << endl
- << "sc_row_th_ratio:\t" << m_cparam->sc_row_th_ratio << endl
- << "sc_stem_x_padding:\t" << m_cparam->sc_stem_x_padding << endl
- << "sc_stem_dia_min:\t"<< m_cparam->sc_stem_dia_min << endl
- << "sc_clip_padding:\t" << m_cparam->sc_clip_padding << endl
- << "sc_stem_ymax_padding:\t" << m_cparam->sc_stem_ymax_padding << endl
- << "sc_default_cut_length:\t" << m_cparam->sc_default_cut_length << endl
- << "sc_stem_edge_detect_window:\t" << m_cparam->sc_stem_edge_detect_window << endl
- << "sc_r2_th:\t" << m_cparam->sc_r2_th << endl
- << "sc_r2_window:\t" << m_cparam->sc_r2_window << endl
- << "sc_average_window:\t" << m_cparam->sc_average_window << endl
- << "sc_morph_radius:\t" << m_cparam->sc_morph_radius << endl
- << "sc_morph_iteration:\t" << m_cparam->sc_morph_iteration << endl
- << "rs_oa_pixel_ratio:\t" << m_cparam->rs_oa_pixel_ratio << endl
- << "rs_cut_pixel_ratio:\t" << m_cparam->rs_cut_pixel_ratio << endl
- << "sc_cut_pixel_ratio:\t" << m_cparam->sc_cut_pixel_ratio << endl
- << "}" << endl;
- return buff.str();
- }
- }
|