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,
#define DSHT_NUM_PARAMETERS
CParticleFilterFrameworkParallelized(int nParticles, int nDimension, int nNumParallelThreads=1)
void SetImages(CByteImage *pRegionImageLeft, CByteImage *pRegionImageRight, CByteImage *pSobelImageLeft, CByteImage *pSobelImageRight, CByteImage *pSobelXImageLeft, CByteImage *pSobelXImageRight, CByteImage *pSobelYImageLeft, CByteImage *pSobelYImageRight)
int m_nNumTrackingBallRegionsLeft
CByteImage * m_pSobelXImageRight
CByteImage * m_pRegionImageLeft
double ** m_ppProbabilities
double * m_pdTrackingBallRadiusRight
void SetConfigOfATenthOfTheParticles(int nTenthIndex, double *pConfig)
double m_pProbMax[NUMBER_OF_CUES]
CByteImage * m_pSobelYImageRight
void CalculatePixelSumInPolygon(ConvexPolygonCalculations::Polygon *pol, int ®ion_sum, int ®ion_length, bool bLeftCamImage)
double CalculateProbability(int nParticleIndex, int nModelIndex) override
virtual ~CParticleFilterRobotHandLocalisation()
CByteImage * m_pSobelImageRight
CHandModelV2 ** m_pHandModels
double DistanceBetweenConfigs(double *pOldConf, double *pNewConf)
CParticleFilterRobotHandLocalisation(int nParticles, int nDimension, int nNumParallelThreads, CStereoCalibration *pCalibration, std::string sHandModelFileName)
ConvexPolygonCalculations::Polygon ** m_pTempIntersectionPolygons
void SetTrackingBallPositions(double *dPosX, double *dPosY, double *dRadius, int nNumTrBallRegions, bool bLeftCamImage)
int m_nNumTrackingBallRegionsRight
double * m_pdTrackingBallPosYLeft
void UpdateModel(int nParticleIndex) override
double m_pProbMin[NUMBER_OF_CUES]
Vec3d ** m_pTempVecArrays
void CalculateTrackingBallCue(double &dDistanceXY, double &dDistanceZ, int nModelIndex)
void PredictNewBases(double dSigmaFactor) override
void CalculateRegionCue(int ®ion_sum, int ®ion_length, int nModelIndex, bool bLeftCamImage)
bool ** m_pTempBoolArrays
void CalculateFinalProbabilities() override
Vec3d ** m_pTempClockwiseHullPolys2
void CalculatePixelSumOnLineSequence(Vec3d linePoints[], int nPoints, int &edge_sum, int &edge_length, double &angle_diffs, bool bLeftCamImage)
double * allowed_deviation
void SetParticleConfigHalf(double *pConfig)
void SetSensorConfig(double *sconfig)
double * m_pdTrackingBallRadiusLeft
double * m_pdTrackingBallPosXLeft
void UpdateModel(int nParticleIndex, int nModelIndex) override
Vec3d ** m_pTempClockwiseHullPolys1
double * m_pdTrackingBallPosYRight
void SetParticleConfig(double *pConfig)
void SetAllowedDeviation(double *adeviation)
CByteImage * m_pSobelImageLeft
double * m_pdTrackingBallPosXRight
void GetDetailedRating(double *pConf, DetailedPFRating *pRating)
double CalculateProbability(bool bSeparateCall=true) override
CByteImage * m_pSobelYImageLeft
CByteImage * m_pRegionImageRight
CByteImage * m_pSobelXImageLeft
void CalculateEdgeCue(int &edge_sum, int &edge_length, double &angle_diffs, int nModelIndex, bool bLeftCamImage)
double dOverallFoundPercentageOfExpectedPixels
double dConfidenceOfRating
int nOverallNumberOfFoundPixels
int nNumberOfWhitePixelsInImage
int nNumberOfFoundPixelsOfFinger[DSHT_NUM_FINGERS]
double dResultConfig[DSHT_NUM_PARAMETERS]
double dFoundPercentageOfExpectedPixelsOfFinger[DSHT_NUM_FINGERS]