瀏覽代碼

v0.8.6 抓取位置调整

chenhongjiang 1 年之前
父節點
當前提交
009891d921
共有 3 個文件被更改,包括 30 次插入12 次删除
  1. 2 1
      ReadMe.txt
  2. 27 10
      grab_point_rs.cpp
  3. 1 1
      graft_cv_api.cpp

+ 2 - 1
ReadMe.txt

@@ -114,4 +114,5 @@ v0.8.1 叶
 v0.8.2 叶子遮挡识别优化:用叶子点云数量判断是否有遮挡,加上识别的茎的位置,统计植株的个数
 v0.8.2 叶子遮挡识别优化:用叶子点云数量判断是否有遮挡,加上识别的茎的位置,统计植株的个数
 v0.8.3 叶子遮挡识别优化:解决叶子遮挡不计数问题;修改点云密度计算方法
 v0.8.3 叶子遮挡识别优化:解决叶子遮挡不计数问题;修改点云密度计算方法
 v0.8.4 叶子遮挡识别优化:小叶遮挡,茎没有识别出来,植株误判问题
 v0.8.4 叶子遮挡识别优化:小叶遮挡,茎没有识别出来,植株误判问题
-v0.8.5 叶子遮挡识别优化:修改叶子遮挡识别位置偏离问题,增加历史抓取信息约束
+v0.8.5 叶子遮挡识别优化:修改叶子遮挡识别位置偏离问题,增加历史抓取信息约束
+v0.8.6 抓取位置调整

+ 27 - 10
grab_point_rs.cpp

@@ -2568,29 +2568,46 @@ void CRootStockGrabPoint::line_filter(
 			grab_fork_ybt = m_cparam.sc_grab_fork_ybt;
 			grab_fork_ybt = m_cparam.sc_grab_fork_ybt;
 		}
 		}
 		bool out_of_range = false;
 		bool out_of_range = false;
-		if ((max_pos + ymin) > grab_fork_yup || (max_pos + ymin) < grab_fork_ybt) {
+		if ((max_pos + ymin) > grab_fork_yup) {
 			out_of_range = true;
 			out_of_range = true;
 			int original_max_pos = max_pos;
 			int original_max_pos = max_pos;
-			max_pos = int(grab_fork_ybt - ymin + 0.5);
+			max_pos = int(grab_fork_yup - ymin + 0.5);
 			max_pos_ref = max_pos;
 			max_pos_ref = max_pos;
 			if (m_pLogger) {
 			if (m_pLogger) {
 				stringstream buff;
 				stringstream buff;
 				buff << m_pcdId << ": warning£¬self fork postiont = " << original_max_pos <<
 				buff << m_pcdId << ": warning£¬self fork postiont = " << original_max_pos <<
-					", USE bottom limit fork postiont " << max_pos <<
+					", USE up limit fork postiont " << max_pos <<
 					", valid fork postiont range:[" << int(grab_fork_ybt - ymin + 0.5) <<
 					", valid fork postiont range:[" << int(grab_fork_ybt - ymin + 0.5) <<
 					", " << int(grab_fork_yup - ymin + 0.5) << "]";
 					", " << int(grab_fork_yup - ymin + 0.5) << "]";
 				m_pLogger->INFO(buff.str());
 				m_pLogger->INFO(buff.str());
 			}
 			}
 		}
 		}
 		else {
 		else {
-			if (m_pLogger) {
-				stringstream buff;
-				buff << m_pcdId << ": self fork postiont = " << max_pos <<
-					", valid fork postiont range:[" << int(grab_fork_ybt - ymin + 0.5)<<
-					", "<< int(grab_fork_yup - ymin + 0.5) << "]";
-				m_pLogger->INFO(buff.str());
+
+			if ((max_pos + ymin) < grab_fork_ybt) {
+				out_of_range = true;
+				int original_max_pos = max_pos;
+				max_pos = int(grab_fork_ybt - ymin + 0.5);
+				max_pos_ref = max_pos;
+				if (m_pLogger) {
+					stringstream buff;
+					buff << m_pcdId << ": warning£¬self fork postiont = " << original_max_pos <<
+						", USE bottom limit fork postiont " << max_pos <<
+						", valid fork postiont range:[" << int(grab_fork_ybt - ymin + 0.5) <<
+						", " << int(grab_fork_yup - ymin + 0.5) << "]";
+					m_pLogger->INFO(buff.str());
+				}
 			}
 			}
-		}	
+			else {
+				if (m_pLogger) {
+					stringstream buff;
+					buff << m_pcdId << ": self fork postiont = " << max_pos <<
+						", valid fork postiont range:[" << int(grab_fork_ybt - ymin + 0.5) <<
+						", " << int(grab_fork_yup - ymin + 0.5) << "]";
+					m_pLogger->INFO(buff.str());
+				}
+			}
+		}
 		
 		
 
 
 		//5 °´Ö¸¶¨Á¿Æ«ÒÆ
 		//5 °´Ö¸¶¨Á¿Æ«ÒÆ

+ 1 - 1
graft_cv_api.cpp

@@ -15,7 +15,7 @@ extern CRITICAL_SECTION g_cs;
 namespace graft_cv
 namespace graft_cv
 {
 {
 
 
-	char *g_version_str = "0.8.5";
+	char *g_version_str = "0.8.6";
 
 
 	//configure
 	//configure
 	string g_conf_file = "./gcv_conf.yml";	
 	string g_conf_file = "./gcv_conf.yml";