2025-11-01 15:41:12 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
2025-12-06 00:11:43 +08:00
|
|
|
|
#include "SG_algo_Export.h"
|
2025-11-01 15:41:12 +08:00
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
|
|
#define _OUTPUT_DEBUG_DATA 1
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double lineLen; //ֱ<>߶γ<DFB6><CEB3><EFBFBD>
|
2026-03-19 00:43:39 +08:00
|
|
|
|
double dirAngleScale; //<2F><><EFBFBD>㷽<EFBFBD><E3B7BD><EFBFBD>ǵij߶<C4B3>
|
|
|
|
|
|
double lineDeviation;//ֱ<><D6B1>ƫ<EFBFBD><C6AB><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߱<EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD>и<D0B8>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double minCutAngleTh; //<2F><>С<EFBFBD>ؽǡ<D8BD><C7A1><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD>費ȫ<E8B2BB><C8AB><EFBFBD>µĽؽǣ<D8BD><C7A3><EFBFBD><EFBFBD>ؽǹ<D8BD>Сʱ<D0A1><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĽؽǺ<D8BD><C7BA><EFBFBD><EFBFBD>ڵ㲨<DAB5><E3B2A8><EFBFBD><EFBFBD><EFBFBD>µĽǶȲ<C7B6><C8B2><EFBFBD>
|
2025-11-01 15:41:12 +08:00
|
|
|
|
}SSX_BQworkpiecePara;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
2025-12-05 23:08:46 +08:00
|
|
|
|
int workpieceType; //1-<2D>ڵ<EFBFBD>1<EFBFBD><31> 2-<2D>ڵ<EFBFBD>2<EFBFBD><32> 3-<2D>ڵ<EFBFBD>3<EFBFBD><33>4-<2D>ڵ<EFBFBD>4<EFBFBD><34>0-δ֪<CEB4><D6AA> <20><><EFBFBD><EFBFBD>-<2D>Ƿ<EFBFBD>
|
2025-12-10 22:37:28 +08:00
|
|
|
|
//1,2,3,4Ϊ<34><CEAA>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
SVzNL3DPoint corner_1[3];
|
|
|
|
|
|
SVzNL3DPoint corner_2[3];
|
|
|
|
|
|
SVzNL3DPoint corner_3[3];
|
|
|
|
|
|
SVzNL3DPoint corner_4[3];
|
2025-12-05 23:08:46 +08:00
|
|
|
|
SVzNL3DPoint center; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
double len135_A1; //A1<41><31><EFBFBD>ȣ<EFBFBD><C8A3>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>135<33>ȷ<EFBFBD><C8B7><EFBFBD>
|
|
|
|
|
|
double len45_B1; //B1<42><31><EFBFBD>ȣ<EFBFBD><C8A3>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>45<34>ȷ<EFBFBD><C8B7><EFBFBD>
|
|
|
|
|
|
double len315_B2; //B2<42><32><EFBFBD>ȣ<EFBFBD><C8A3>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>315<31>ȷ<EFBFBD><C8B7><EFBFBD>
|
|
|
|
|
|
double len225_A2; //A2<41><32><EFBFBD>ȣ<EFBFBD><C8A3>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>225<32>ȷ<EFBFBD><C8B7><EFBFBD>
|
2025-11-01 15:41:12 +08:00
|
|
|
|
}SSX_BQworkpieceResult;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int rgnIdx;
|
|
|
|
|
|
int edge_size;
|
|
|
|
|
|
int edgeLink1_size;
|
|
|
|
|
|
int edgeLink2_size;
|
2025-12-10 22:37:28 +08:00
|
|
|
|
SVzNL3DPoint* edge;
|
|
|
|
|
|
SVzNL3DPoint* edgeLink_1;
|
|
|
|
|
|
SVzNL3DPoint* edgeLink_2;
|
2025-11-01 15:41:12 +08:00
|
|
|
|
}SSX_debugInfo;
|
|
|
|
|
|
|
2025-11-08 09:57:14 +08:00
|
|
|
|
//<2F><><EFBFBD>汾<EFBFBD><E6B1BE>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT const char* wd_BQWorkpieceCornerVersion(void);
|
2025-11-08 09:57:14 +08:00
|
|
|
|
|
2025-11-01 15:41:12 +08:00
|
|
|
|
//<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>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT SSG_planeCalibPara sx_BQ_getBaseCalibPara(
|
2025-11-01 15:41:12 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT void sx_BQ_lineDataR(
|
2025-11-01 15:41:12 +08:00
|
|
|
|
std::vector< SVzNL3DPosition>& a_line,
|
|
|
|
|
|
const double* camPoseR,
|
|
|
|
|
|
double groundH);
|
|
|
|
|
|
|
2025-12-05 23:08:46 +08:00
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ǵ㼰<C7B5><E3BCB0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT SSX_BQworkpieceResult sx_BQ_getWorkpieceCorners(
|
2026-03-19 00:43:39 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines_src,
|
2025-11-01 15:41:12 +08:00
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
const SSG_outlierFilterParam filterParam,
|
2026-03-19 00:43:39 +08:00
|
|
|
|
const SSG_treeGrowParam growParam,
|
|
|
|
|
|
const SSG_planeCalibPara groundCalibPara,
|
|
|
|
|
|
const SSX_BQworkpiecePara workpieceParam,
|
2025-11-01 15:41:12 +08:00
|
|
|
|
#if _OUTPUT_DEBUG_DATA
|
2025-12-10 22:37:28 +08:00
|
|
|
|
std::vector<SSX_debugInfo>& debug_contours,
|
2025-11-01 15:41:12 +08:00
|
|
|
|
#endif
|
2025-11-02 13:14:15 +08:00
|
|
|
|
int* errCode);
|