40 lines
1.3 KiB
C++
40 lines
1.3 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>
|
||
|
||
typedef struct
|
||
{
|
||
SSG_outlierFilterParam filterParam;
|
||
SSG_lineRightAngleParam templatePara_HF; //直角参数。对应直角类型:水平-下降
|
||
SSG_lineRightAngleParam templatePara_FH; //直角参数。对应直角类型:下降-水平
|
||
SSG_lineRightAngleParam templatePara_HR; //直角参数。对应直角类型:水平-上升
|
||
SSG_lineRightAngleParam templatePara_RH; //直角参数。对应直角类型:上升-水平
|
||
SSG_treeGrowParam growParam;
|
||
}SG_boxCarMeasureParam;
|
||
|
||
//扫描线处理,提取直角特征
|
||
SG_APISHARED_EXPORT void sg_boxCarMeasure_lineProc(
|
||
SVzNL3DLaserLine* a_line,
|
||
int lineIdx,
|
||
int* errCode,
|
||
std::vector<SSG_lineFeature>& all_vLineFeatures,
|
||
std::vector<std::vector<int>>& noisePts,
|
||
const SG_boxCarMeasureParam measureParam);
|
||
|
||
///数据输入必须是grid格式,以进行水平方向和垂直方向的处理
|
||
///(1)寻找直角点
|
||
///(2)对LINE_FEATURE_RIGHT_ANGLE_HF和LINE_FEATURE_RIGHT_ANGLE_RH两种直角点进行生长
|
||
///(3) 确定尺寸
|
||
SG_APISHARED_EXPORT SSG_boxCarDimension sg_getBoxCarDimension(
|
||
SVzNL3DLaserLine* laser3DPoints,
|
||
int lineNum,
|
||
std::vector<SSG_lineFeature>& all_vLineFeatures,
|
||
std::vector<std::vector<int>>& noisePts,
|
||
const SG_boxCarMeasureParam measureParam); |