51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
#pragma once
|
||
|
||
#include "SG_algo_Export.h"
|
||
#include <vector>
|
||
|
||
#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<SVzNL3DPoint> holes;
|
||
std::vector<SVzNL3DPoint> holesDir;
|
||
SVzNL3DPoint center;
|
||
SVzNL3DPoint z_dir; //z方向向量(归一化)
|
||
SVzNL3DPoint y_dir; //y方向向量(归一化)
|
||
SVzNL3DPoint x_dir; //x方向向量(归一化)
|
||
}WD_workpieceInfo;
|
||
|
||
//读版本号
|
||
SG_APISHARED_EXPORT const char* wd_workpieceHolePositioningVersion(void);
|
||
|
||
//相机水平安装计算地面调平参数。。
|
||
//旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数
|
||
SG_APISHARED_EXPORT SSG_planeCalibPara wd_getGroundCalibPara(
|
||
std::vector< std::vector<SVzNL3DPosition>>& 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<SVzNL3DPosition>>& 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);
|