Explorar el Código

v0.1.24 切割位置识别,增加kp3_weight_cut参数,控制抓取点在点3和点2间的位置,在[0,1.0]间,越大越靠近点3

chenhongjiang hace 1 año
padre
commit
a0f5bb2357
Se han modificado 6 ficheros con 11 adiciones y 4 borrados
  1. 2 1
      ReadMe.txt
  2. 3 1
      config.cpp
  3. 1 0
      data_def_api.h
  4. 1 0
      tcv_conf.yml
  5. 1 1
      tea_cv_api.cpp
  6. 3 1
      tea_sorter.cpp

+ 2 - 1
ReadMe.txt

@@ -21,4 +21,5 @@ v0.1.19 抓取
 v0.1.20 切割位置识别min_x未定义就使用bug修改
 v0.1.21 切割图片是彩色图,app提供的通道顺序是rgb,改成opencv用的bgr
 v0.1.22 切割模型标注关键点更改,2、3点分别是第一、二叶子分叉点
-v0.1.23 抓取点以关键点4为基础偏移
+v0.1.23 抓取点以关键点4为基础偏移
+v0.1.24 切割位置识别,增加kp3_weight_cut参数,控制抓取点在点3和点2间的位置,在[0,1.0]间,越大越靠近点3

+ 3 - 1
config.cpp

@@ -45,6 +45,7 @@ namespace graft_cv{
 			<< "grid_padding_cut" << m_cparam->grid_padding_cut
 			<< "min_area_ratio_cut" << m_cparam->min_area_ratio_cut
 			<< "max_area_ratio_cut" << m_cparam->max_area_ratio_cut
+			<< "kp3_weight_cut" << m_cparam->kp3_weight_cut
 
 			
 			<< "}"; 	
@@ -78,6 +79,7 @@ namespace graft_cv{
 		m_cparam->grid_padding_cut = (int)node["grid_padding_cut"];
 		m_cparam->min_area_ratio_cut = (double)node["min_area_ratio_cut"];
 		m_cparam->max_area_ratio_cut = (double)node["max_area_ratio_cut"];
+		m_cparam->kp3_weight_cut = (double)node["kp3_weight_cut"];
 		
   }
 	string get_cparam_info(ConfigParam*m_cparam)
@@ -113,7 +115,7 @@ namespace graft_cv{
 			<< "grid_padding_cut:\t" << m_cparam->grid_padding_cut << endl
 			<< "min_area_ratio_cut:\t" << m_cparam->min_area_ratio_cut << endl
 			<< "max_area_ratio_cut:\t" << m_cparam->max_area_ratio_cut << endl
-
+			<< "kp3_weight_cut:\t" << m_cparam->kp3_weight_cut << endl
 
 			<< "}" << endl; 	
 		return buff.str();

+ 1 - 0
data_def_api.h

@@ -38,6 +38,7 @@ typedef struct{
 	int grid_padding_cut;
 	double min_area_ratio_cut; 
 	double max_area_ratio_cut;
+	double kp3_weight_cut; //关键点kp3权重,[0,1]内,切割点在关键点kp3、kp2间,此值越大越靠近kp3点
 
 } ConfigParam;
 

+ 1 - 0
tcv_conf.yml

@@ -25,3 +25,4 @@ conf_parameters:
    grid_padding_cut: 50
    min_area_ratio_cut: 0.0
    max_area_ratio_cut: 0.25
+   kp3_weight_cut: 0.7

+ 1 - 1
tea_cv_api.cpp

@@ -18,7 +18,7 @@ extern CRITICAL_SECTION g_cs;
 namespace graft_cv
 {
 
-	char *g_version_str = "0.1.23";
+	char *g_version_str = "0.1.24";
 
 	//configure
 	string g_conf_file = "./tcv_conf.yml";	

+ 3 - 1
tea_sorter.cpp

@@ -1506,7 +1506,9 @@ void CTeaSort::calculate_stem_cut_position_opt(
 	}
 	
 	cv::Point2f center_pt;
-	double p3_ratio = 0.8;
+	double p3_ratio = m_cp.kp3_weight_cut;
+	if(p3_ratio > 1.0) { p3_ratio = 1.0; }
+	if(p3_ratio < 0.0) { p3_ratio = 0.0; }
 	center_pt.x = p3_ratio*p3.x + (1.0 - p3_ratio)*p2.x;
 	center_pt.y = p3_ratio*p3.y + (1.0 - p3_ratio)*p2.y;