2025-06-08 10:46:41 +08:00
|
|
|
|
#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>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>˳<EFBFBD><CBB3><EFBFBD>Ⱥ<EFBFBD><C8BA>:z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_lineDataRemoveOutlier(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
SSG_outlierFilterParam filterParam,
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& filerData,
|
|
|
|
|
|
std::vector<int>& noisePts);
|
|
|
|
|
|
//<2F>˳<EFBFBD><CBB3><EFBFBD>Ⱥ<EFBFBD>㣺z<E3A3BA><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD>,<2C>ı<EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_lineDataRemoveOutlier_changeOriginData(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
SSG_outlierFilterParam filterParam);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>˳<EFBFBD><CBB3><EFBFBD>Ⱥ<EFBFBD>㣺<EFBFBD><E3A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_lineDataRemoveOutlier_ptDistMethod(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
SSG_outlierFilterParam filterParam,
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& filerData,
|
|
|
|
|
|
std::vector<int>& noisePts);
|
|
|
|
|
|
//ƽ<><C6BD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_lineDataSmoothing(
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& input,
|
|
|
|
|
|
int smoothWin,
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& output);
|
|
|
|
|
|
|
|
|
|
|
|
//VZ_APISHARED_EXPORT void sg_getLineMeanVar();
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineLVFeature(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const SSG_slopeParam slopeParam,
|
|
|
|
|
|
const SSG_VFeatureParam valleyPara,
|
|
|
|
|
|
SSG_lineFeature* line_features);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡɨ<C8A1><C9A8><EFBFBD>߹յ<DFB9><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineCornerFeature(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const SSG_cornerParam cornerPara, //scaleͨ<65><CDA8>ȡbagH<67><48>1/4
|
|
|
|
|
|
SSG_lineFeature* line_features);
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineUpperSemiCircleFeature(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const double sieveDiameter,
|
|
|
|
|
|
const SSG_slopeParam slopePara,
|
2025-06-11 22:14:52 +08:00
|
|
|
|
std::vector< SSG_featureSemiCircle>& line_features,
|
|
|
|
|
|
cv::Mat& holeMask);
|
2025-06-08 10:46:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵļ<CFB5>ֵ<EFBFBD>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ͼ<EFBFBD>Сֵ<D0A1>㣩
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineLocalPeaks(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const double scaleWin,
|
|
|
|
|
|
std::vector< SSG_basicFeature1D>& localMax,
|
|
|
|
|
|
std::vector< SSG_basicFeature1D>& localMin);
|
|
|
|
|
|
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineDownJumps(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const double jumpTh,
|
|
|
|
|
|
std::vector< SSG_basicFeature1D>& downJumps);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>feature<72><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getFeatureGrowingTrees(
|
|
|
|
|
|
std::vector<SSG_lineFeature>& lineFeatures,
|
|
|
|
|
|
std::vector<SSG_featureTree>& trees,
|
|
|
|
|
|
SSG_treeGrowParam growParam);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ending<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getEndingGrowingTrees(
|
|
|
|
|
|
std::vector<SSG_2DValueI>& lineEndings,
|
|
|
|
|
|
SVzNL3DLaserLine* laser3DPoints,
|
|
|
|
|
|
bool isVScan,
|
|
|
|
|
|
int featureType,
|
|
|
|
|
|
std::vector<SSG_featureTree>& trees,
|
|
|
|
|
|
SSG_treeGrowParam growParam);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_LVFeatureGrowing(
|
|
|
|
|
|
std::vector<SSG_lineFeature>& lineFeatures,
|
|
|
|
|
|
std::vector<SSG_featureTree>& trees,
|
|
|
|
|
|
SSG_bagParam bagParam,
|
|
|
|
|
|
SSG_treeGrowParam growParam,
|
|
|
|
|
|
std::vector<SSG_2DValueI>& edgePts_0,
|
|
|
|
|
|
std::vector<SSG_2DValueI>& edgePts_1);
|
|
|
|
|
|
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_peakFeatureGrowing(
|
|
|
|
|
|
std::vector<std::vector< SSG_basicFeature1D>>& lineFeatures,
|
|
|
|
|
|
std::vector<SSG_featureTree>& trees,
|
|
|
|
|
|
SSG_treeGrowParam growParam);
|
|
|
|
|
|
|
2025-06-11 22:14:52 +08:00
|
|
|
|
//semiCircle<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getFeatureGrowingTrees_semiCircle(
|
|
|
|
|
|
std::vector< SSG_featureSemiCircle>& lineFeatures,
|
|
|
|
|
|
const int lineIdx,
|
|
|
|
|
|
const int lineSize,
|
|
|
|
|
|
std::vector<SSG_semiCircleFeatureTree>& trees,
|
|
|
|
|
|
std::vector<SSG_semiCircleFeatureTree>& stopTrees,
|
|
|
|
|
|
std::vector<SSG_semiCircleFeatureTree>& invalidTrees, //<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ֳɶ<D6B3><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
|
|
|
|
|
|
SSG_treeGrowParam growParam);
|
|
|
|
|
|
|
2025-06-08 10:46:41 +08:00
|
|
|
|
SSG_meanVar _computeMeanVar(double* data, int size);
|
|
|
|
|
|
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD>ߵ㣨z<E3A3A8><7A>С<EFBFBD>㣩<EFBFBD><E3A3A9>
|
|
|
|
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3>ȵ<EFBFBD>һ<EFBFBD>롣<EFBFBD>Ծֲ<D4BE><D6B2><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>б<EFBFBD><D0B1>ǣ<EFBFBD><C7A3><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>¼<EFBFBD><C2BC>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLocalPeaks(
|
|
|
|
|
|
SVzNL3DLaserLine* scanLines,
|
|
|
|
|
|
int lineNum,
|
|
|
|
|
|
std::vector<SSG_2DValueI>& peaks,
|
|
|
|
|
|
SSG_localPkParam searchWin);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծֲ<D4BE><D6B2><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ΪԲ<CEAA><D4B2><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ɨ<EFBFBD>裬<EFBFBD><E8A3AC>¼ɨ<C2BC>赽<EFBFBD>ı߽<C4B1>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
//SG_APISHARED_EXPORT void sg_peakPolarScan(cv::Mat& edgeMask, SVzNL2DPoint a_peak, SSG_polarScanParam polarScanParam, std::vector< SSG_2DValueI>& rgnContour);
|
|
|
|
|
|
//<2F><>Peak<61><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD>ֱɨ<D6B1><C9A8><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_peakXYScan(
|
|
|
|
|
|
SVzNL3DLaserLine* laser3DPoints,
|
|
|
|
|
|
int lineNum,
|
|
|
|
|
|
cv::Mat& featureEdgeMask,
|
|
|
|
|
|
SSG_2DValueI a_peak,
|
|
|
|
|
|
SSG_treeGrowParam growParam,
|
|
|
|
|
|
SSG_bagParam bagParam,
|
|
|
|
|
|
bool rgnPtAsEdge,
|
|
|
|
|
|
std::vector< SSG_lineConotours>& topContour,
|
|
|
|
|
|
std::vector< SSG_lineConotours>& bottomContour,
|
|
|
|
|
|
std::vector< SSG_lineConotours>& leftContour,
|
|
|
|
|
|
std::vector< SSG_lineConotours>& rightContour,
|
|
|
|
|
|
int* maxEdgeId_top,
|
|
|
|
|
|
int* maxEdgeId_btm,
|
|
|
|
|
|
int* maxEdgeId_left,
|
|
|
|
|
|
int* maxEdgeId_right);
|
|
|
|
|
|
|
|
|
|
|
|
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>edgeId<49><64>ͬ<EFBFBD>ı߽<C4B1><DFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getContourPts(
|
|
|
|
|
|
std::vector< SSG_lineConotours>& contour_all,
|
|
|
|
|
|
int vldEdgeId,
|
|
|
|
|
|
std::vector< SSG_2DValueI>& contourFilter,
|
|
|
|
|
|
int* lowLevelFlag);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ӱ߽<D3B1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>edgeId<49><64>ͬ<EFBFBD>ı߽<C4B1><DFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getPairingContourPts(
|
|
|
|
|
|
std::vector<SSG_conotourPair>& contourPairs,
|
|
|
|
|
|
std::vector<SSG_intPair>& idPairs,
|
|
|
|
|
|
std::vector< SSG_conotourPair>& contourFilter,
|
|
|
|
|
|
SVzNLRangeD range,
|
|
|
|
|
|
bool isTBDir,
|
|
|
|
|
|
int* lowLevelFlag_0,
|
|
|
|
|
|
int* lowLevelFlag_1);
|
|
|
|
|
|
|
|
|
|
|
|
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD>ı߽<C4B1><DFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_contourPostProc(
|
|
|
|
|
|
std::vector< SSG_contourPtInfo>& contour,
|
|
|
|
|
|
int maxEdgeIdx,
|
|
|
|
|
|
double sameConturDistTh,
|
|
|
|
|
|
std::vector< SSG_2DValueI>& contourFilter,
|
|
|
|
|
|
int sideID,
|
|
|
|
|
|
int* blockFlag);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>任
|
|
|
|
|
|
//input, output<75><74>Ϊfloat<61><74>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_distanceTrans(const cv::Mat input, cv::Mat& output, int distType);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><>5x5<78><35>ʽѰ<CABD><D1B0>localPeaks
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <param name="peaks"></param>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLocalPeaks_distTransform(
|
|
|
|
|
|
cv::Mat& input,
|
|
|
|
|
|
std::vector<SSG_2DValueI>& peaks,
|
|
|
|
|
|
SSG_localPkParam searchWin);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ʹ<><CAB9>ģ<EFBFBD>巨<EFBFBD><E5B7A8>ȡֱ<C8A1><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>deltaZ<61><5A>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>С<EFBFBD>ķ<EFBFBD>Χ<EFBFBD>ڣ<EFBFBD><DAA3>յ<EFBFBD><D5B5>Ҳ<EFBFBD>deltaY<61><59>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>С<EFBFBD>ķ<EFBFBD>Χ<EFBFBD><CEA7>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
SG_APISHARED_EXPORT void sg_getLineRigthAngleFeature(
|
|
|
|
|
|
SVzNL3DPosition* lineData,
|
|
|
|
|
|
int dataSize,
|
|
|
|
|
|
int lineIdx,
|
|
|
|
|
|
const SSG_lineRightAngleParam templatePara_HF,
|
|
|
|
|
|
const SSG_lineRightAngleParam templatePara_FH,
|
|
|
|
|
|
const SSG_lineRightAngleParam templatePara_HR,
|
|
|
|
|
|
const SSG_lineRightAngleParam templatePara_RH,
|
|
|
|
|
|
SSG_lineFeature* line_features);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>ROI
|
|
|
|
|
|
SG_APISHARED_EXPORT SVzNL3DRangeD sg_getScanDataROI(
|
|
|
|
|
|
SVzNL3DLaserLine* laser3DPoints,
|
|
|
|
|
|
int lineNum);
|
|
|
|
|
|
|
|
|
|
|
|
//XYƽ<59><C6BD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void lineFitting(
|
|
|
|
|
|
std::vector< SVzNL3DPoint>& inliers,
|
|
|
|
|
|
double* _k,
|
|
|
|
|
|
double* _b);
|
|
|
|
|
|
|
|
|
|
|
|
//Bresenham<61>㷨
|
|
|
|
|
|
SG_APISHARED_EXPORT void drawLine(
|
|
|
|
|
|
int x0,
|
|
|
|
|
|
int y0,
|
|
|
|
|
|
int x1,
|
|
|
|
|
|
int y1,
|
|
|
|
|
|
std::vector<SVzNL2DPoint>& pts);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="bwImg"> Ŀ<><C4BF><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>1<EFBFBD><31><EFBFBD><EFBFBD> <20>հ<D5B0>Ϊ<EFBFBD><CEAA>0<EFBFBD><30></param>
|
|
|
|
|
|
/// <param name="labImg"> <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ΪrgnID, ID<49><44>2<EFBFBD><32>ʼ </param>
|
|
|
|
|
|
/// <param name="labelRgns"></param>
|
|
|
|
|
|
SG_APISHARED_EXPORT void SG_TwoPassLabel(
|
|
|
|
|
|
const cv::Mat& bwImg,
|
|
|
|
|
|
cv::Mat& labImg,
|
|
|
|
|
|
std::vector<SSG_Region>& labelRgns,
|
|
|
|
|
|
int connectivity = 4);
|
|
|
|
|
|
|
|
|
|
|
|
//<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 sg_getPlaneCalibPara(
|
|
|
|
|
|
SVzNL3DLaserLine* laser3DPoints,
|
|
|
|
|
|
int lineNum);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ROI<4F><49><EFBFBD>ڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><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 sg_getPlaneCalibPara_ROIs(
|
|
|
|
|
|
SVzNL3DLaserLine* laser3DPoints,
|
|
|
|
|
|
int lineNum,
|
|
|
|
|
|
std::vector<SVzNL3DRangeD>& ROIs);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>ǣ<EFBFBD>Z-Y-X˳<58><CBB3><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT SSG_EulerAngles rotationMatrixToEulerZYX(const double R[3][3]);
|
|
|
|
|
|
// <20><>ŷ<EFBFBD><C5B7><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z-Y-X˳<58><CBB3><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void eulerToRotationMatrixZYX(const SSG_EulerAngles& angles, double R[3][3]);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
///camPoseRΪ3x3<78><33><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void lineDataRT(
|
|
|
|
|
|
SVzNL3DLaserLine* a_line,
|
|
|
|
|
|
const double* camPoseR,
|
|
|
|
|
|
double groundH);
|