Go to the documentation of this file.
27 #include "../HandLocalisationConstants.h"
29 #include "../HandModel/HandModelV2.h"
30 #include "../HandModel/HandModeliCub.h"
34 #include "Math/Math3d.h"
35 #include "Helpers/helpers.h"
36 #include "Image/ByteImage.h"
37 #include "Calibration/StereoCalibration.h"
42 #define NUMBER_OF_CUES 7
88 void SetImages(CByteImage* pRegionImageLeft, CByteImage* pRegionImageRight, CByteImage* pSobelImageLeft, CByteImage* pSobelImageRight,
89 CByteImage* pSobelXImageLeft, CByteImage* pSobelXImageRight, CByteImage* pSobelYImageLeft, CByteImage* pSobelYImageRight);
91 void UpdateModel(
int nParticleIndex,
int nModelIndex)
override;
122 void SetTrackingBallPositions(
double* dPosX,
double* dPosY,
double* dRadius,
int nNumTrBallRegions,
bool bLeftCamImage);
129 void CalculateRegionCue(
int& region_sum,
int& region_length,
int nModelIndex,
bool bLeftCamImage);
130 void CalculateEdgeCue(
int& edge_sum,
int& edge_length,
double& angle_diffs,
int nModelIndex,
bool bLeftCamImage);
bool ** m_pTempBoolArrays
void PredictNewBases(double dSigmaFactor) override
double * m_pdTrackingBallPosYRight
double dConfidenceOfRating
int m_nNumTrackingBallRegionsRight
ConvexPolygonCalculations::Polygon ** m_pTempIntersectionPolygons
double m_pProbMax[NUMBER_OF_CUES]
double dResultConfig[DSHT_NUM_PARAMETERS]
CByteImage * m_pRegionImageRight
void SetTrackingBallPositions(double *dPosX, double *dPosY, double *dRadius, int nNumTrBallRegions, bool bLeftCamImage)
void SetAllowedDeviation(double *adeviation)
double DistanceBetweenConfigs(double *pOldConf, double *pNewConf)
CByteImage * m_pSobelImageRight
void GetDetailedRating(double *pConf, DetailedPFRating *pRating)
void CalculateTrackingBallCue(double &dDistanceXY, double &dDistanceZ, int nModelIndex)
double * m_pdTrackingBallPosYLeft
CByteImage * m_pSobelImageLeft
virtual ~CParticleFilterRobotHandLocalisation()
CByteImage * m_pRegionImageLeft
double CalculateProbability(int nParticleIndex, int nModelIndex) override
double * m_pdTrackingBallPosXLeft
void CalculateFinalProbabilities() override
void CalculateEdgeCue(int &edge_sum, int &edge_length, double &angle_diffs, int nModelIndex, bool bLeftCamImage)
double m_pProbMin[NUMBER_OF_CUES]
void CalculatePixelSumInPolygon(ConvexPolygonCalculations::Polygon *pol, int ®ion_sum, int ®ion_length, bool bLeftCamImage)
void SetParticleConfigHalf(double *pConfig)
double * m_pdTrackingBallRadiusLeft
VectorXD< 3, double > Vec3d
CHandModelV2 ** m_pHandModels
Vec3d ** m_pTempVecArrays
CByteImage * m_pSobelYImageRight
int nOverallNumberOfFoundPixels
double dFoundPercentageOfExpectedPixelsOfFinger[DSHT_NUM_FINGERS]
CByteImage * m_pSobelXImageLeft
void SetImages(CByteImage *pRegionImageLeft, CByteImage *pRegionImageRight, CByteImage *pSobelImageLeft, CByteImage *pSobelImageRight, CByteImage *pSobelXImageLeft, CByteImage *pSobelXImageRight, CByteImage *pSobelYImageLeft, CByteImage *pSobelYImageRight)
double * allowed_deviation
double CalculateProbability(bool bSeparateCall=true) override
CByteImage * m_pSobelYImageLeft
void UpdateModel(int nParticleIndex, int nModelIndex) override
void CalculatePixelSumOnLineSequence(Vec3d linePoints[], int nPoints, int &edge_sum, int &edge_length, double &angle_diffs, bool bLeftCamImage)
double * m_pdTrackingBallRadiusRight
void SetParticleConfig(double *pConfig)
int m_nNumTrackingBallRegionsLeft
CParticleFilterRobotHandLocalisation(int nParticles, int nDimension, int nNumParallelThreads, CStereoCalibration *pCalibration, std::string sHandModelFileName)
int nNumberOfFoundPixelsOfFinger[DSHT_NUM_FINGERS]
CByteImage * m_pSobelXImageRight
#define DSHT_NUM_PARAMETERS
double ** m_ppProbabilities
void SetConfigOfATenthOfTheParticles(int nTenthIndex, double *pConfig)
void UpdateModel(int nParticleIndex) override
double dOverallFoundPercentageOfExpectedPixels
int nNumberOfWhitePixelsInImage
Vec3d ** m_pTempClockwiseHullPolys1
Vec3d ** m_pTempClockwiseHullPolys2
void SetSensorConfig(double *sconfig)
void CalculateRegionCue(int ®ion_sum, int ®ion_length, int nModelIndex, bool bLeftCamImage)
double * m_pdTrackingBallPosXRight