2026-01-11 17:04:06 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "SG_algo_Export.h"
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
|
|
#define _OUTPUT_DEBUG_DATA 1
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint center; //<2F>ݸ˶˲<CBB6><CBB2><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
2026-01-11 21:05:08 +08:00
|
|
|
|
SVzNL3DPoint axialDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2026-04-14 15:04:46 +08:00
|
|
|
|
}SSX_rodPoseInfo; //
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint center; //<2F>ݸ˶˲<CBB6><CBB2><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
2026-04-15 17:37:33 +08:00
|
|
|
|
SVzNL3DPoint xDir;
|
|
|
|
|
|
SVzNL3DPoint yDir;
|
2026-04-14 15:04:46 +08:00
|
|
|
|
SVzNL3DPoint normalDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2026-04-20 11:32:50 +08:00
|
|
|
|
SVzNL3DPoint holeLT;
|
|
|
|
|
|
SVzNL3DPoint holeRB;
|
|
|
|
|
|
}SSX_platePoseInfo; //
|
2026-01-11 17:04:06 +08:00
|
|
|
|
|
2026-03-21 23:15:43 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double diameter;
|
|
|
|
|
|
double len;
|
|
|
|
|
|
}SSX_rodParam; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint center; //<2F>ݸ˶˲<CBB6><CBB2><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
SVzNL3DPoint axialDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SVzNL3DPoint normalDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SVzNL3DPoint startPt;
|
|
|
|
|
|
SVzNL3DPoint endPt;
|
|
|
|
|
|
}SSX_rodPositionInfo;
|
|
|
|
|
|
|
2026-04-14 15:04:46 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint startPt;
|
|
|
|
|
|
SVzNL3DPoint endPt;
|
|
|
|
|
|
SVzNL3DPoint center;
|
|
|
|
|
|
SVzNL3DPoint normalDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
}SSX_weldSeamInfo;
|
|
|
|
|
|
|
2026-01-11 17:04:06 +08:00
|
|
|
|
//<2F><><EFBFBD>汾<EFBFBD><E6B1BE>
|
|
|
|
|
|
SG_APISHARED_EXPORT const char* wd_rodAndBarDetectionVersion(void);
|
|
|
|
|
|
|
2026-03-21 23:15:43 +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_rodPosition_getBaseCalibPara(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
|
|
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sx_rodPosition_lineDataR(
|
|
|
|
|
|
std::vector< SVzNL3DPosition>& a_line,
|
|
|
|
|
|
const double* camPoseR,
|
|
|
|
|
|
double groundH);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2026-01-11 17:04:06 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ݸ˶˲<CBB6><CBB2><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2026-01-11 21:05:08 +08:00
|
|
|
|
SG_APISHARED_EXPORT void sx_hexHeadScrewMeasure(
|
2026-01-11 17:04:06 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
bool isHorizonScan, //true:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>в۵<D0B2><DBB5><EFBFBD>false:<3A><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>ֱ<EFBFBD>۵<EFBFBD>
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
const SSG_outlierFilterParam filterParam,
|
|
|
|
|
|
const SSG_treeGrowParam growParam,
|
2026-01-12 17:27:50 +08:00
|
|
|
|
double rodDiameter,
|
2026-04-14 15:04:46 +08:00
|
|
|
|
std::vector<SSX_rodPoseInfo>& screwInfo,
|
|
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>㶨λ<E3B6A8><CEBB><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB>
|
2026-04-20 11:32:50 +08:00
|
|
|
|
SG_APISHARED_EXPORT SSX_platePoseInfo sx_getLocationPlatePose(
|
2026-04-14 15:04:46 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
2026-01-11 17:04:06 +08:00
|
|
|
|
int* errCode);
|
2026-03-21 23:15:43 +08:00
|
|
|
|
|
2026-04-14 15:04:46 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ץȡ<D7A5><C8A1>λ
|
2026-03-21 23:15:43 +08:00
|
|
|
|
SG_APISHARED_EXPORT void sx_rodPositioning(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
const SSG_planeCalibPara poseCalibPara,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
const SSG_outlierFilterParam filterParam,
|
|
|
|
|
|
const SSG_treeGrowParam growParam,
|
|
|
|
|
|
const SSX_rodParam rodParam,
|
|
|
|
|
|
std::vector<SSX_rodPositionInfo>& rodInfo,
|
2026-04-14 15:04:46 +08:00
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ԣ<EFBFBD>ֽṹ<D6BD>ֽ<D6BD>춨λ
|
|
|
|
|
|
SG_APISHARED_EXPORT void sx_rebarWeldSeamPositioning(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
const SSG_planeCalibPara poseCalibPara,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
const SSG_outlierFilterParam filterParam,
|
|
|
|
|
|
const SSG_treeGrowParam growParam,
|
|
|
|
|
|
const SSX_rodParam rodParam,
|
|
|
|
|
|
std::vector<SSX_weldSeamInfo>& weldSeamInfo,
|
2026-03-21 23:15:43 +08:00
|
|
|
|
int* errCode);
|