algoLib/sourceCode/SX_lapWeldDetection_Export.h

68 lines
2.1 KiB
C
Raw Normal View History

2025-09-14 21:15:44 +08:00
#pragma once
2025-12-06 00:11:43 +08:00
#include "SG_algo_Export.h"
2025-09-14 21:15:44 +08:00
#include <vector>
2025-09-11 19:37:22 +08:00
typedef enum
{
keSX_ScanMode_V = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>
keSX_ScanMode_H, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>к<EFBFBD><D0BA><EFBFBD>ɨ<EFBFBD><C9A8>
keSX_ScanMode_Both, //<2F><><EFBFBD>д<EFBFBD>ֱɨ<D6B1>裬Ҳ<E8A3AC><D2B2>ˮƽɨ<C6BD><C9A8>
} ESX_WeldScanMode;
2025-09-14 21:15:44 +08:00
typedef struct
{
double lapHeight;//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
double weldMinLen; //<2F><>С<EFBFBD><D0A1><EFBFBD>쳤<EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9>˿<EFBFBD><CBBF>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>
int weldRefPoints; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>IJο<C4B2><CEBF>㣬Ĭ<E3A3AC><C4AC><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ㣩
2025-09-11 19:37:22 +08:00
ESX_WeldScanMode scanMode;
2025-09-14 21:15:44 +08:00
}SSX_lapWeldParam;
typedef struct
{
SWD_segFeature startSeg;
SWD_segFeature curSegBuff[5];
int bufCounter;
}SWD_weldSegment;
SG_APISHARED_EXPORT const char* wd_weldSeamAlgoVersion(void);
2025-09-14 21:15:44 +08:00
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>Ͳο<CDB2><CEBF><EFBFBD>ƽƽ<C6BD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ƽ
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>淨<EFBFBD><E6B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
SG_APISHARED_EXPORT SSG_planeCalibPara sx_getBaseCalibPara(
2025-09-14 21:15:44 +08:00
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SG_APISHARED_EXPORT void sx_lineDataR(
2025-09-14 21:15:44 +08:00
std::vector< SVzNL3DPosition>& a_line,
const double* camPoseR,
double groundH);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
SG_APISHARED_EXPORT void sx_getLapWeldPostion(
2025-09-14 21:15:44 +08:00
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
const SSG_cornerParam cornerPara,
SSG_treeGrowParam growParam,
SSX_lapWeldParam lapWeldParam,
2025-09-11 19:37:22 +08:00
SSG_planeCalibPara groundCalibPara,
2025-09-14 21:15:44 +08:00
std::vector<std::vector<SVzNL3DPoint>>& objOps,
int* errCode);
//<2F><><EFBFBD>麸<EFBFBD><E9BAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
SG_APISHARED_EXPORT void BQ_checkWeldingStartLine(
std::vector<SVzNL3DPosition>& a_line,
const int lineIdx,
const double innerPara_lineDeviTh, //ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD><DFB5>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3>㵽<EFBFBD><E3B5BD><EFBFBD><EFBFBD><EFBFBD>յ㹹<D5B5><E3B9B9>ֱ<EFBFBD>ߵľ<DFB5><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
const double innerPara_endingZDeviTh, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>߶˵<DFB6><CBB5><EFBFBD>Zƫ<5A><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const double innerPara_endingDistTh, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>߶˵<DFB6><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SWD_weldSegment& weldStartLine);
//<2F><><EFBFBD>㺸<EFBFBD><E3BAB8>λ<EFBFBD><CEBB>
SG_APISHARED_EXPORT void BQ_getWeldSeamPose(
std::vector<SSG_gapFeatureTree>& trees,
const SWD_segFeature& weldingStartLine,
const SWD_segFeature& weldingEndLine,
int weldRefPoints, //<2F><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>ο<EFBFBD><CEBF><EFBFBD>λ<EFBFBD><CEBB>
std::vector<SVzNL3DPoint>& weldOps, //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
std::vector<SVzNL3DPosition>& weldRawPoints, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>debug
int* errCode);