#pragma once #if defined(SG_API_LIBRARY) # define SG_APISHARED_EXPORT __declspec(dllexport) #else # define SG_APISHARED_EXPORT __declspec(dllimport) #endif #include "SG_baseDataType.h" #include #include #define OUTPUT_DEBUG 0 typedef struct { SWD_sizeParam minSize; SWD_sizeParam alarmSize; }SWD_paricleSizeParam; typedef struct { SSG_outlierFilterParam filterParam; SSG_cornerParam cornerParam; SSG_treeGrowParam growParam; }SWD_PSM_algoParam; typedef struct { //double EQRadius; SWD_sizeParam size; SVzNL3DPoint vertix[8]; }SWD_ParticlePosInfo; //读版本号 SG_APISHARED_EXPORT const char* wd_particleSegVersion(void); //计算一个平面调平参数。 //数据输入中可以有一个地平面和参考调平平面,以最高的平面进行调平 //旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数 SG_APISHARED_EXPORT SSG_planeCalibPara wd_getBaseCalibPara( 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_particleSizeMeasure( std::vector< std::vector>& scanLines, const SWD_paricleSizeParam particleSizeParam, const SSG_planeCalibPara groundCalibPara, const SWD_PSM_algoParam algoParam, std::vector& particles, int* errCode);