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());