瀏覽代碼

v0.1.20 切割位置识别min_x未定义就使用bug修改

chenhongjiang 1 年之前
父節點
當前提交
72458b8447
共有 5 個文件被更改,包括 15 次插入4 次删除
  1. 3 1
      ReadMe.txt
  2. 7 0
      chessboard.cpp
  3. 1 1
      tcv_conf.yml
  4. 1 1
      tea_cv_api.cpp
  5. 3 1
      tea_sorter.cpp

+ 3 - 1
ReadMe.txt

@@ -16,4 +16,6 @@ v0.1.14 
 v0.1.15 优化切割位置识别精度: 初步识别点在目标内时用识别点;否则垂线方向搜索最近点作为切割点(适用于苗弯曲)
 v0.1.16 抓取、切割识别结果大于0则返回正常
 v0.1.17 抓取增加搜索范围-50度到50度
-v0.1.18 抓取旋转180度设置,0-不旋转,非0-旋转180
+v0.1.18 抓取旋转180度设置,0-不旋转,非0-旋转180
+v0.1.19 抓取旋转180度设置, 标定
+v0.1.20 切割位置识别min_x未定义就使用bug修改

+ 7 - 0
chessboard.cpp

@@ -120,6 +120,13 @@ namespace graft_cv {
 
 			m_raw_img = img.clone();
 		}
+		if(m_dtype == img_type::tea_grab){
+		double rot = m_cp.rot_degree_grab;
+		if(fabs(rot)>1.0e-3){
+			//rotate image
+			cv::rotate(m_raw_img, m_raw_img,cv::ROTATE_180);
+		}
+	}
 		//image saver
 		if (m_ppImgSaver && *m_ppImgSaver) {
 			(*m_ppImgSaver)->saveImage(m_raw_img, m_imgId);

+ 1 - 1
tcv_conf.yml

@@ -16,7 +16,7 @@ conf_parameters:
    min_distance_grab: 501.
    min_area_ratio_grab: 0.0
    max_area_ratio_grab: 0.1
-   rot_degree_grab: 180
+   rot_degree_grab: 0
    model_path_cut: "D:/projects/graft/py_code/retina_tea5/TeaDetector_cut_20231203001648.onnx"
    object_threshold_cut: 0.8
    nms_threshold_cut: 0.1

+ 1 - 1
tea_cv_api.cpp

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

+ 3 - 1
tea_sorter.cpp

@@ -1494,7 +1494,7 @@ void CTeaSort::calculate_stem_cut_position_opt(
 
 	//检查center_pt附近,是否有目标,如果有就用center_pt点作为切割点
 	
-	int nnr = 7;
+	int nnr = 3;
 	int cx, cy, knn, x, y;
 	cx = int(center_pt.x);
 	cy = int(center_pt.y);
@@ -1519,6 +1519,8 @@ void CTeaSort::calculate_stem_cut_position_opt(
 	///////////////////////////////////////////////////////////////////////////////////////////////////////
 	//  否则通过骨架化图,找到旁边的点(适用于茎弯曲的情况)
 	int min_x, min_y;
+	 min_x = cx;
+	 min_y = cy;
 	double min_loss = 1.0e6;
 
 	double ref_angle = grab_angle + CV_PI / 2.0;