hybridPosePositioning

version 1.4.4 : 转子钢芯,添加了异常保护
This commit is contained in:
jerryzeng 2026-09-27 18:34:17 +08:00
parent 7b3cb958ef
commit 85fb6d1434
2 changed files with 27 additions and 15 deletions

View File

@ -2364,13 +2364,13 @@ void HaiRuiMa_rotorCorePositioning_test(void)
}; };
SVzNLRange fileIdx[HRM_RotorCore_TEST_GROUP] = { SVzNLRange fileIdx[HRM_RotorCore_TEST_GROUP] = {
{1,10}, {3,70},{8,8}, {5,47}, {1,54}, {1,6} {1,10}, {3,70},{9,9}, {5,47}, {1,54}, {1,6}
}; };
const char* ver = wd_hybridPositioningVersion(); const char* ver = wd_hybridPositioningVersion();
printf("ver:%s\n", ver); printf("ver:%s\n", ver);
for (int grp = 4; grp <= 4; grp++) for (int grp = 2; grp <= 2; grp++)
{ {
SSG_planeCalibPara groundCalibPara; SSG_planeCalibPara groundCalibPara;
//初始化成单位阵 //初始化成单位阵

View File

@ -26,7 +26,8 @@
//version 1.4.1 : 转子钢芯, 每个输出结果添加了2D图像坐标 //version 1.4.1 : 转子钢芯, 每个输出结果添加了2D图像坐标
//version 1.4.2 : 转子钢芯, 优化了点云中垂直部分去除的门限 //version 1.4.2 : 转子钢芯, 优化了点云中垂直部分去除的门限
//version 1.4.3 : 转子钢芯, (1)分层系数和边距系数添加-1.0参数值,表示不进行分层或边距。(2)添加选项选择使用工件的自身法向或统一使用调平地面法向 //version 1.4.3 : 转子钢芯, (1)分层系数和边距系数添加-1.0参数值,表示不进行分层或边距。(2)添加选项选择使用工件的自身法向或统一使用调平地面法向
std::string m_strVersion = "HybridPositioning 1.4.3"; //version 1.4.4 : 转子钢芯,添加了异常保护
std::string m_strVersion = "HybridPositioning 1.4.4";
const char* wd_hybridPositioningVersion(void) const char* wd_hybridPositioningVersion(void)
{ {
return m_strVersion.c_str(); return m_strVersion.c_str();
@ -1760,9 +1761,14 @@ void wd_HRM_RotorCorePositioning(
//统计ROI中的扫描线和PtIdx范围 //统计ROI中的扫描线和PtIdx范围
SVzNLRange roiLineIndice = { INT_MAX, 0 }; SVzNLRange roiLineIndice = { INT_MAX, 0 };
SVzNLRange roiPtIndice = { INT_MAX, 0 }; SVzNLRange roiPtIndice = { INT_MAX, 0 };
bool isValid = true;
for (int x = L; x <= R; x++) for (int x = L; x <= R; x++)
{ {
for (int y = T; y <= B; y++) for (int y = T; y <= B; y++)
{
if (x < mappingTable.size())
{
if (y < mappingTable[x].size())
{ {
mapping2DTo3D& a_mapping = mappingTable[x][y]; mapping2DTo3D& a_mapping = mappingTable[x][y];
for (int m = 0; m < (int)a_mapping.mappings.size(); m++) for (int m = 0; m < (int)a_mapping.mappings.size(); m++)
@ -1780,8 +1786,14 @@ void wd_HRM_RotorCorePositioning(
} }
} }
} }
else
isValid = false;
} }
if (roiLineIndice.nMax < roiLineIndice.nMin) else
isValid = false;
}
}
if ( (roiLineIndice.nMax < roiLineIndice.nMin) || (isValid == false))
continue; continue;
//生成ROI中的扫描数据 //生成ROI中的扫描数据