소스 검색

v0.8.16 修改茎节检测中while循环死循环的bug

chenhongjiang 1 년 전
부모
커밋
8e8341d5cd
3개의 변경된 파일18개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      ReadMe.txt
  2. 16 0
      grab_point_rs.cpp
  3. 1 1
      graft_cv_api.cpp

+ 1 - 0
ReadMe.txt

@@ -125,3 +125,4 @@ v0.8.12 优化茎粗检测功能,采用xy面投影茎粗统计结果
 v0.8.13 优化茎粗检测功能,采用茎两侧边缘点构建直线,计算直线间距离,再用点云平均距离进行补偿
 v0.8.14 优化茎粗检测功能,增加xx_grab_offset_cut, 在ybt、yup中间点进行偏移,在这个位置计算茎粗;茎edge直线拟合,剔除茎节的影响
 v0.8.15 优化茎节检测功能,增加xx_grab_fork_height,控制识别较长的茎节
+v0.8.16 修改茎节检测中while循环死循环的bug

+ 16 - 0
grab_point_rs.cpp

@@ -2896,6 +2896,14 @@ void CRootStockGrabPoint::line_filter(
 						if (j >= maxj) { maxj = j; }
 					}
 					if (maxj - minj + 1 < th_fork_h) {
+						//清除发现的最大直径周围的数据
+						for (int k = -del_radius; k <= del_radius; ++k) {
+							int j = k + midx;
+							if (j < 0 || j >= length) {
+								continue;
+							}
+							stem_diameters.at(j) = 0.0;
+						}
 						continue;
 					}
 
@@ -2944,6 +2952,14 @@ void CRootStockGrabPoint::line_filter(
 					if (j >= maxj) { maxj = j; }
 				}
 				if (maxj - minj + 1 < th_fork_h) {
+					//清除发现的最大直径周围的数据
+					for (int k = -del_radius; k <= del_radius; ++k) {
+						int j = k + midx;
+						if (j < 0 || j >= stem_width_ex_cp.size()) {
+							continue;
+						}
+						stem_width_ex_cp.at(j) = 0.0;
+					}
 					continue;
 				}
 

+ 1 - 1
graft_cv_api.cpp

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