Merge branch 'main' of http://gitea.mnutil.com/jerryzeng/algoLib
This commit is contained in:
commit
69b029bae7
@ -13,7 +13,8 @@
|
|||||||
//version 1.4.0 : 添加了华航孔定位功能
|
//version 1.4.0 : 添加了华航孔定位功能
|
||||||
//version 1.4.1 : 华航孔定位客户发布初始版本,修正了1.4.0版本的一些问题
|
//version 1.4.1 : 华航孔定位客户发布初始版本,修正了1.4.0版本的一些问题
|
||||||
//version 1.4.2 : 华航孔定位改进:(1)法向量计算改进(2)添加3x3平滑(3)修正了bug
|
//version 1.4.2 : 华航孔定位改进:(1)法向量计算改进(2)添加3x3平滑(3)修正了bug
|
||||||
std::string m_strVersion = "1.4.2";
|
//version 1.4.3 : 对1.3.0拓普发孔定位中调平Bug进行了修正
|
||||||
|
std::string m_strVersion = "1.4.3";
|
||||||
const char* wd_workpieceHolePositioningVersion(void)
|
const char* wd_workpieceHolePositioningVersion(void)
|
||||||
{
|
{
|
||||||
return m_strVersion.c_str();
|
return m_strVersion.c_str();
|
||||||
@ -683,6 +684,12 @@ void wd_workpieceHolePositioning(
|
|||||||
double valieCommonNumRatio = 0.25;
|
double valieCommonNumRatio = 0.25;
|
||||||
wd_getHoleInfo(scanLines, lineSegPara, filterParam, growParam, valieCommonNumRatio, segTrees_v, segTrees_h, validObjects);
|
wd_getHoleInfo(scanLines, lineSegPara, filterParam, growParam, valieCommonNumRatio, segTrees_v, segTrees_h, validObjects);
|
||||||
|
|
||||||
|
for (int i = 0; i < lineNum; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < (int)scanLinesInput[i].size(); j++)
|
||||||
|
scanLines[i][j].nPointIdx = 0; //清零
|
||||||
|
}
|
||||||
|
|
||||||
//生成聚类信息,
|
//生成聚类信息,
|
||||||
std::vector<std::vector< SVzNL2DPoint>> clusters; //只记录位置
|
std::vector<std::vector< SVzNL2DPoint>> clusters; //只记录位置
|
||||||
std::vector<SVzNL3DRangeD> clustersRoi3D;
|
std::vector<SVzNL3DRangeD> clustersRoi3D;
|
||||||
@ -696,37 +703,41 @@ void wd_workpieceHolePositioning(
|
|||||||
for (int m = 0; m < (int)segTrees_v[vTreeIdx].treeNodes.size(); m++)
|
for (int m = 0; m < (int)segTrees_v[vTreeIdx].treeNodes.size(); m++)
|
||||||
{
|
{
|
||||||
SWD_segFeature& a_seg = segTrees_v[vTreeIdx].treeNodes[m];
|
SWD_segFeature& a_seg = segTrees_v[vTreeIdx].treeNodes[m];
|
||||||
if (scanLinesInput[a_seg.lineIdx][a_seg.endPtIdx].nPointIdx == 0)
|
if (scanLines[a_seg.lineIdx][a_seg.endPtIdx].nPointIdx == 0)
|
||||||
{
|
{
|
||||||
|
scanLines[a_seg.lineIdx][a_seg.endPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
||||||
scanLinesInput[a_seg.lineIdx][a_seg.endPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
scanLinesInput[a_seg.lineIdx][a_seg.endPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
||||||
SVzNL2DPoint a_pos = { a_seg.lineIdx , a_seg.endPtIdx };
|
SVzNL2DPoint a_pos = { a_seg.lineIdx , a_seg.endPtIdx };
|
||||||
a_cluster.push_back(a_pos);
|
a_cluster.push_back(a_pos);
|
||||||
_updateRoi3D(a_roi3D, scanLinesInput[a_seg.lineIdx][a_seg.endPtIdx].pt3D);
|
_updateRoi3D(a_roi3D, scanLines[a_seg.lineIdx][a_seg.endPtIdx].pt3D);
|
||||||
}
|
}
|
||||||
if (scanLinesInput[a_seg.lineIdx][a_seg.startPtIdx].nPointIdx == 0)
|
if (scanLines[a_seg.lineIdx][a_seg.startPtIdx].nPointIdx == 0)
|
||||||
{
|
{
|
||||||
|
scanLines[a_seg.lineIdx][a_seg.startPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
||||||
scanLinesInput[a_seg.lineIdx][a_seg.startPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
scanLinesInput[a_seg.lineIdx][a_seg.startPtIdx].nPointIdx = vTreeIdx + 1; // 0x01;
|
||||||
SVzNL2DPoint a_pos = { a_seg.lineIdx , a_seg.startPtIdx };
|
SVzNL2DPoint a_pos = { a_seg.lineIdx , a_seg.startPtIdx };
|
||||||
a_cluster.push_back(a_pos);
|
a_cluster.push_back(a_pos);
|
||||||
_updateRoi3D(a_roi3D, scanLinesInput[a_seg.lineIdx][a_seg.startPtIdx].pt3D);
|
_updateRoi3D(a_roi3D, scanLines[a_seg.lineIdx][a_seg.startPtIdx].pt3D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int m = 0; m < (int)segTrees_h[hTreeIdx].treeNodes.size(); m++)
|
for (int m = 0; m < (int)segTrees_h[hTreeIdx].treeNodes.size(); m++)
|
||||||
{
|
{
|
||||||
SWD_segFeature& a_seg = segTrees_h[hTreeIdx].treeNodes[m];
|
SWD_segFeature& a_seg = segTrees_h[hTreeIdx].treeNodes[m];
|
||||||
if (scanLinesInput[a_seg.startPtIdx][a_seg.lineIdx].nPointIdx == 0)
|
if (scanLines[a_seg.startPtIdx][a_seg.lineIdx].nPointIdx == 0)
|
||||||
{
|
{
|
||||||
|
scanLines[a_seg.startPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
||||||
scanLinesInput[a_seg.startPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
scanLinesInput[a_seg.startPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
||||||
SVzNL2DPoint a_pos = { a_seg.startPtIdx , a_seg.lineIdx };
|
SVzNL2DPoint a_pos = { a_seg.startPtIdx , a_seg.lineIdx };
|
||||||
a_cluster.push_back(a_pos);
|
a_cluster.push_back(a_pos);
|
||||||
_updateRoi3D(a_roi3D, scanLinesInput[a_seg.startPtIdx][a_seg.lineIdx].pt3D);
|
_updateRoi3D(a_roi3D, scanLines[a_seg.startPtIdx][a_seg.lineIdx].pt3D);
|
||||||
}
|
}
|
||||||
if (scanLinesInput[a_seg.endPtIdx][a_seg.lineIdx].nPointIdx == 0)
|
if (scanLines[a_seg.endPtIdx][a_seg.lineIdx].nPointIdx == 0)
|
||||||
{
|
{
|
||||||
|
scanLines[a_seg.endPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
||||||
scanLinesInput[a_seg.endPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
scanLinesInput[a_seg.endPtIdx][a_seg.lineIdx].nPointIdx = vTreeIdx + 1; // 0x02;
|
||||||
SVzNL2DPoint a_pos = { a_seg.endPtIdx , a_seg.lineIdx };
|
SVzNL2DPoint a_pos = { a_seg.endPtIdx , a_seg.lineIdx };
|
||||||
a_cluster.push_back(a_pos);
|
a_cluster.push_back(a_pos);
|
||||||
_updateRoi3D(a_roi3D, scanLinesInput[a_seg.endPtIdx][a_seg.lineIdx].pt3D);
|
_updateRoi3D(a_roi3D, scanLines[a_seg.endPtIdx][a_seg.lineIdx].pt3D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clusters.push_back(a_cluster);
|
clusters.push_back(a_cluster);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user