wheelArchHeigthMeasure version 1.4.2 :
优化标定块凹槽长度计算方法,添加了噪点滤除。
This commit is contained in:
parent
9d3cb1c18d
commit
7063642782
@ -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;
|
||||||
|
|||||||
@ -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 };
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user