Go to the documentation of this file.
27 #include "../HandLocalisationConstants.h"
28 #include "../HandModel/HandModelV2.h"
29 #include "../HandModel/HandModeliCub.h"
37 #include "Calibration/StereoCalibration.h"
38 #include "Helpers/helpers.h"
39 #include "Image/ByteImage.h"
40 #include "Math/Math3d.h"
42 #define NUMBER_OF_CUES 7
78 int nNumParallelThreads,
79 CStereoCalibration* pCalibration,
80 std::string sHandModelFileName);
88 void SetImages(CByteImage* pRegionImageLeft,
89 CByteImage* pRegionImageRight,
90 CByteImage* pSobelImageLeft,
91 CByteImage* pSobelImageRight,
92 CByteImage* pSobelXImageLeft,
93 CByteImage* pSobelXImageRight,
94 CByteImage* pSobelYImageLeft,
95 CByteImage* pSobelYImageRight);
97 void UpdateModel(
int nParticleIndex,
int nModelIndex)
override;
137 int nNumTrBallRegions,
bool ** m_pTempBoolArrays
void PredictNewBases(double dSigmaFactor) override
double * m_pdTrackingBallPosYRight
double dConfidenceOfRating
int m_nNumTrackingBallRegionsRight
VectorXD< 3, double > Vec3d
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
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