hybridPosePositioning
version 1.4.4 : 转子钢芯,添加了异常保护
This commit is contained in:
parent
7b3cb958ef
commit
85fb6d1434
@ -2364,13 +2364,13 @@ void HaiRuiMa_rotorCorePositioning_test(void)
|
||||
};
|
||||
|
||||
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();
|
||||
printf("ver:%s\n", ver);
|
||||
|
||||
for (int grp = 4; grp <= 4; grp++)
|
||||
for (int grp = 2; grp <= 2; grp++)
|
||||
{
|
||||
SSG_planeCalibPara groundCalibPara;
|
||||
//初始化成单位阵
|
||||
|
||||
@ -26,7 +26,8 @@
|
||||
//version 1.4.1 : 转子钢芯, 每个输出结果添加了2D图像坐标
|
||||
//version 1.4.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)
|
||||
{
|
||||
return m_strVersion.c_str();
|
||||
@ -1760,28 +1761,39 @@ void wd_HRM_RotorCorePositioning(
|
||||
//统计ROI中的扫描线和PtIdx范围
|
||||
SVzNLRange roiLineIndice = { INT_MAX, 0 };
|
||||
SVzNLRange roiPtIndice = { INT_MAX, 0 };
|
||||
bool isValid = true;
|
||||
for (int x = L; x <= R; x++)
|
||||
{
|
||||
for (int y = T; y <= B; y++)
|
||||
{
|
||||
mapping2DTo3D& a_mapping = mappingTable[x][y];
|
||||
for (int m = 0; m < (int)a_mapping.mappings.size(); m++)
|
||||
if (x < mappingTable.size())
|
||||
{
|
||||
int lineIdx = a_mapping.mappings[m].lineIdx;
|
||||
int ptIdx = a_mapping.mappings[m].ptIdx;
|
||||
if (scanLines[lineIdx][ptIdx].pt3D.z > 1e-4)
|
||||
if (y < mappingTable[x].size())
|
||||
{
|
||||
scanLinesInput[lineIdx][ptIdx].nPointIdx &= 0xffff0000;
|
||||
scanLinesInput[lineIdx][ptIdx].nPointIdx |= (idx + 1);
|
||||
roiLineIndice.nMin = roiLineIndice.nMin > lineIdx ? lineIdx : roiLineIndice.nMin;
|
||||
roiLineIndice.nMax = roiLineIndice.nMax < lineIdx ? lineIdx : roiLineIndice.nMax;
|
||||
roiPtIndice.nMin = roiPtIndice.nMin > ptIdx ? ptIdx : roiPtIndice.nMin;
|
||||
roiPtIndice.nMax = roiPtIndice.nMax < ptIdx ? ptIdx : roiPtIndice.nMax;
|
||||
mapping2DTo3D& a_mapping = mappingTable[x][y];
|
||||
for (int m = 0; m < (int)a_mapping.mappings.size(); m++)
|
||||
{
|
||||
int lineIdx = a_mapping.mappings[m].lineIdx;
|
||||
int ptIdx = a_mapping.mappings[m].ptIdx;
|
||||
if (scanLines[lineIdx][ptIdx].pt3D.z > 1e-4)
|
||||
{
|
||||
scanLinesInput[lineIdx][ptIdx].nPointIdx &= 0xffff0000;
|
||||
scanLinesInput[lineIdx][ptIdx].nPointIdx |= (idx + 1);
|
||||
roiLineIndice.nMin = roiLineIndice.nMin > lineIdx ? lineIdx : roiLineIndice.nMin;
|
||||
roiLineIndice.nMax = roiLineIndice.nMax < lineIdx ? lineIdx : roiLineIndice.nMax;
|
||||
roiPtIndice.nMin = roiPtIndice.nMin > ptIdx ? ptIdx : roiPtIndice.nMin;
|
||||
roiPtIndice.nMax = roiPtIndice.nMax < ptIdx ? ptIdx : roiPtIndice.nMax;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
isValid = false;
|
||||
}
|
||||
else
|
||||
isValid = false;
|
||||
}
|
||||
}
|
||||
if (roiLineIndice.nMax < roiLineIndice.nMin)
|
||||
if ( (roiLineIndice.nMax < roiLineIndice.nMin) || (isValid == false))
|
||||
continue;
|
||||
|
||||
//生成ROI中的扫描数据
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user