From 31c3ffa776dae9813eca9efde46f5f349ec67e64 Mon Sep 17 00:00:00 2001 From: jerryzeng Date: Sat, 9 May 2026 23:56:40 +0800 Subject: [PATCH] =?UTF-8?q?rodAndBarDetection=20version=201.2.8=20:=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=9E=BA=E6=9D=86=E5=AE=9A=E4=BD=8D=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E4=B8=AD=E7=9A=84=E4=B8=80=E4=B8=AABug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sourceCode/rodAndBarDetection.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sourceCode/rodAndBarDetection.cpp b/sourceCode/rodAndBarDetection.cpp index 2b64d36..d303253 100644 --- a/sourceCode/rodAndBarDetection.cpp +++ b/sourceCode/rodAndBarDetection.cpp @@ -16,7 +16,8 @@ //version 1.2.5 : 添加筑裕钢筋焊缝提取API //version 1.2.6 : 定位盘位姿计算由RANSAC调整为迭代拟合,测试精度是否有提高 //version 1.2.7 : (1)根据实际点云修正了螺杆定位算法(2)定位盘位姿计算改回RANSAC -std::string m_strVersion = "1.2.7"; +//version 1.2.8 : 修正螺杆定位算法中的一个Bug +std::string m_strVersion = "1.2.8"; const char* wd_rodAndBarDetectionVersion(void) { return m_strVersion.c_str(); @@ -606,6 +607,11 @@ SVzNL3DRangeD _getPointCloudROI(std::vector& scanData) break; } } + if(eraseIdx < 0) + { + *errCode = SX_ERR_ZERO_OBJECTS; + return; + } fitPoints.erase(fitPoints.begin(), fitPoints.begin() + eraseIdx); fit2DPos.erase(fit2DPos.begin(), fit2DPos.begin() + eraseIdx); fitPoints.erase(fitPoints.end() - 5, fitPoints.end()); @@ -623,6 +629,11 @@ SVzNL3DRangeD _getPointCloudROI(std::vector& scanData) break; } } + if (eraseIdx < 0) + { + *errCode = SX_ERR_ZERO_OBJECTS; + return; + } int eraseNum = (int)fitPoints.size() - eraseIdx; fitPoints.erase(fitPoints.end() - eraseNum, fitPoints.end()); fit2DPos.erase(fit2DPos.end() - eraseNum, fit2DPos.end());