#pragma once #include "SG_algo_Export.h" #include #define _OUTPUT_DEBUG_DATA 1 typedef struct { int workpieceType; double holeDiameter; //孔直径 double holeDist_L; //孔间距_长 double holeDist_W; //孔间距_宽 }WD_workpieceHoleParam; typedef struct { int workpieceType; std::vector holes; std::vector holesDir; SVzNL3DPoint center; SVzNL3DPoint z_dir; SVzNL3DPoint y_dir; }WD_workpieceInfo; //读版本号 SG_APISHARED_EXPORT const char* wd_workpieceHolePositioningVersion(void); //相机水平安装计算地面调平参数。。 //旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数 SG_APISHARED_EXPORT SSG_planeCalibPara wd_getGroundCalibPara( std::vector< std::vector>& scanLines); //相机水平时姿态调平,并去除地面 SG_APISHARED_EXPORT void wd_lineDataR( std::vector< SVzNL3DPosition>& a_line, const double* camPoseR, double groundH); //工件孔定位 SG_APISHARED_EXPORT void wd_workpieceHolePositioning( std::vector< std::vector>& scanLinesInput, const WD_workpieceHoleParam workpiecePara, const SSG_lineSegParam lineSegPara, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, const SSG_planeCalibPara groundCalibPara, std::vector< WD_workpieceInfo>& workpiecePositioning, int* errCode);