Browse Source

v0.6.6 增加剪裁后没有点的异常处理

chenhongjiang 2 years ago
parent
commit
5b815a18df
4 changed files with 16 additions and 2 deletions
  1. 2 1
      ReadMe.txt
  2. 6 0
      grab_point_rs.cpp
  3. 5 1
      graft_cv_api.cpp
  4. 3 0
      utils.h

+ 2 - 1
ReadMe.txt

@@ -73,4 +73,5 @@ v0.6.1 
 v0.6.2 增加上苗点云识别夹取位置接口及功能
 v0.6.3 增加茄科切后识别接口及功能(同一个接口支持砧木和穗苗)
 v0.6.4 增加算法参数读取文件进行更新的接口
-v0.6.5 修改代码,得到最左侧一株
+v0.6.5 修改代码,得到最左侧一株
+v0.6.6 增加剪裁后没有点的异常处理

+ 6 - 0
grab_point_rs.cpp

@@ -103,6 +103,9 @@ namespace graft_cv {
 			buff << "CropBox croped point cloud " << cloud_inbox->width * cloud_inbox->height << " data points";
 			m_pLogger->INFO(buff.str());
 		}
+		if (cloud_inbox->width * cloud_inbox->height < 1) {
+			return 1;
+		}
 
 		if (m_cparam.image_show) {
 			viewer_cloud(cloud_inbox, std::string("cloud_inbox"));
@@ -123,6 +126,9 @@ namespace graft_cv {
 				stem_radius<<", nb_points="<< nb_points;
 			m_pLogger->INFO(buff.str());
 		}
+		if (cloud_ror->width * cloud_ror->height < 1) {
+			return 1;
+		}
 
 		if (m_cparam.image_show) {
 			viewer_cloud(cloud_ror, std::string("cloud_ror"));

+ 5 - 1
graft_cv_api.cpp

@@ -19,7 +19,7 @@ extern CRITICAL_SECTION g_cs;
 namespace graft_cv
 {
 
-	char *g_version_str = "0.6.5";
+	char *g_version_str = "0.6.6";
 
 	//configure
 	string g_conf_file = "./gcv_conf.yml";	
@@ -309,6 +309,10 @@ namespace graft_cv
 				return 1;
 			}
 			int oa = g_rs_gp.grab_point_detect(posinfo);
+			if (oa != 0) {
+				g_logger.ERRORINFO("no points");
+				return 1;
+			}
 		}
 		catch (std::exception &err) {
 			g_logger.ERRORINFO(err.what());

+ 3 - 0
utils.h

@@ -392,6 +392,9 @@ namespace graft_cv{
 	template<typename T>
 	double otsu(std::vector<T>&data)
 	{
+		if (data.size() == 0) {
+			return 0.0;
+		}
 		std::vector<T>data_sort(data);
 		std::sort(data_sort.begin(), data_sort.end());
 		double t0 = data_sort[int(data_sort.size() / 2)];