59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#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 <vector>
|
|
#include <opencv2/opencv.hpp>
|
|
|
|
#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<SVzNL3DPosition>>& 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<SVzNL3DPosition>>& scanLines,
|
|
const SWD_paricleSizeParam particleSizeParam,
|
|
const SSG_planeCalibPara groundCalibPara,
|
|
const SWD_PSM_algoParam algoParam,
|
|
std::vector<SWD_ParticlePosInfo>& particles,
|
|
int* errCode);
|
|
|