wheelArchHeigthMeasure version 1.4.2 :

优化标定块凹槽长度计算方法,添加了噪点滤除。
This commit is contained in:
jerryzeng 2026-05-19 17:19:31 +08:00
parent 9d3cb1c18d
commit 7063642782
2 changed files with 27 additions and 8 deletions

View File

@ -17,7 +17,8 @@
//version 1.3.6 : 轮眉到轮心高度计算方法进行了修正重新从由两点距离修改为Y高度差。 //version 1.3.6 : 轮眉到轮心高度计算方法进行了修正重新从由两点距离修改为Y高度差。
//version 1.4.0 : 添加了标定块凹槽长度计算API。 //version 1.4.0 : 添加了标定块凹槽长度计算API。
//version 1.4.1 : 优化了标定块凹槽长度计算方法使用前部1/4和后部1/4点计算跳开中间波动比较大的点。 //version 1.4.1 : 优化了标定块凹槽长度计算方法使用前部1/4和后部1/4点计算跳开中间波动比较大的点。
std::string m_strVersion = "1.4.1"; //version 1.4.2 : 优化标定块凹槽长度计算方法,添加了噪点滤除。
std::string m_strVersion = "1.4.2";
const char* wd_wheelArchHeigthMeasureVersion(void) const char* wd_wheelArchHeigthMeasureVersion(void)
{ {
return m_strVersion.c_str(); return m_strVersion.c_str();
@ -1200,20 +1201,38 @@ double wd_getCalibrationBlockLength(
//计算长度 //计算长度
std::vector<std::vector<SVzNL3DPosition>> validLines; std::vector<std::vector<SVzNL3DPosition>> validLines;
for (int line = 0; line < lineNum; line++) for (int line = 0; line < lineNum; line++)
{ {
std::vector< SVzNL3DPosition> lineData; std::vector< SVzNL3DPosition> lineData;
std::vector< int> ptIdxCheck;
for (int j = 0; j < linePtNum; j++) for (int j = 0; j < linePtNum; j++)
{ {
if (objMask[line][j] >= 0) if (objMask[line][j] >= 0)
{ {
int clusterPtIdx = objMask[line][j]; int clusterPtIdx = objMask[line][j];
if(objClusters[objIdx][clusterPtIdx].pt3D.z > 1e-4) if (objClusters[objIdx][clusterPtIdx].pt3D.z > 1e-4)
{
lineData.push_back(objClusters[objIdx][clusterPtIdx]); lineData.push_back(objClusters[objIdx][clusterPtIdx]);
ptIdxCheck.push_back(j);
}
} }
} }
if(lineData.size() > 10) if (lineData.size() > 10)
validLines.push_back(lineData); {
bool validLine = true;
for (int j = 1; j < (int)lineData.size(); j++)
{
if (ptIdxCheck[j] - ptIdxCheck[j - 1] > 3)
{
validLine = false;
break;
}
}
if(true == validLine)
validLines.push_back(lineData);
}
} }
std::vector<double> gaugeLen; std::vector<double> gaugeLen;

View File

@ -2960,7 +2960,7 @@ int main()
}; };
SVzNLRange fileIdx[4] = { SVzNLRange fileIdx[4] = {
{1,20}, {1,20}, {1,20}, {1,21} {1,20}, {1,20}, {21,21}, {22,22}
}; };
const char* ver = wd_wheelArchHeigthMeasureVersion(); const char* ver = wd_wheelArchHeigthMeasureVersion();
@ -2996,9 +2996,9 @@ int main()
SSG_treeGrowParam growParam; SSG_treeGrowParam growParam;
growParam.maxLineSkipNum = 5; growParam.maxLineSkipNum = 5;
growParam.yDeviation_max = 5.0; growParam.yDeviation_max = 1.5;
growParam.maxSkipDistance = 5.0; growParam.maxSkipDistance = 1.5;
growParam.zDeviation_max = 5.0;// growParam.zDeviation_max = 1.5;//
growParam.minLTypeTreeLen = 100; //mm growParam.minLTypeTreeLen = 100; //mm
growParam.minVTypeTreeLen = 100; //mm growParam.minVTypeTreeLen = 100; //mm
SVzNLRangeD calibratiionBlockYRange = { -1000, 500 }; SVzNLRangeD calibratiionBlockYRange = { -1000, 500 };