algoLib/sourceCode/bagThreadPositioning_Export.h

55 lines
1.7 KiB
C
Raw Normal View History

#pragma once
#include "SG_algo_Export.h"
#include <vector>
#define _OUTPUT_DEBUG_DATA 1
typedef struct
{
SVzNL3DPoint threadPos; //<2F><>ͷλ<CDB7><CEBB>
SVzNL3DPoint operatePos; //<2F>µ<EFBFBD>λ<EFBFBD><CEBB>
double rotateAngle; //ˮƽ<CBAE><C6BD>ת<EFBFBD><D7AA>
}SSX_bagThreadInfo; //<2F><>ͷ<EFBFBD><CDB7>Ϣ
typedef struct
{
bool isHorizonScan;
bool scanFromThreadHead;
double camInstallAngle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װʱ<D7B0><CAB1>̨<EFBFBD><CCA8><EFBFBD>н<EFBFBD>
double stitchWidth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD><EFBFBD>
double operateDist; //<2F>µ<EFBFBD>λ<EFBFBD>þ<EFBFBD><C3BE><EFBFBD><EFBFBD>ž<EFBFBD><C5BE><EFBFBD>
double mark_height; //<2F><EFBFBD><EAB6A8><EFBFBD>߶<EFBFBD>
double mark_diameter; //<2F><EFBFBD><EAB6A8><EFBFBD>
double mark_distance; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
}SSX_ScanInfo;
//<2F><><EFBFBD><EFBFBD><E6B1BE>
SG_APISHARED_EXPORT const char* wd_bagThreadPositioningVersion(void);
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>Ͳο<CDB2><CEBF><EFBFBD>ƽƽ<C6BD><EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ƽ
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
SG_APISHARED_EXPORT SSG_planeCalibPara wd_bagThread_getBaseCalibPara(
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SG_APISHARED_EXPORT void wd_bagThread_lineDataR(
std::vector< SVzNL3DPosition>& a_line,
const double* camPoseR,
double groundH);
//<2F><>ͷλ<CDB7>ü<EFBFBD><C3BC>ⶨλ
SG_APISHARED_EXPORT void wd_bagThreadPositioning(
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
const SSX_ScanInfo scanInfo, //true:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>в۵<D0B2><DBB5><EFBFBD>false:<3A><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>ֱ<EFBFBD>۵<EFBFBD>
const SSG_planeCalibPara groundCalibPara,
const SSG_outlierFilterParam filterParam, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
const SSG_cornerParam cornerPara, //V<><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const SSG_raisedFeatureParam raisedFeaturePara,//<2F><>β͹<CEB2><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const SSG_treeGrowParam growParam, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<SSX_bagThreadInfo>& bagThreadInfo,
std::vector<SSX_bagThreadInfo>& bagThreadInfo_relative, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Mark<72><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<SVzNL3DPoint>& output_markCenter, //<2F><><EFBFBD><EFBFBD>Markλ<6B><CEBB><EFBFBD><EFBFBD>Ϣ
int* errCode);