34#include <Image/ImageProcessor.h>
39 int nNumAnnealingRuns,
41 CStereoCalibration* pCalibration,
42 std::string sHandModelFileName)
45 nNumParticles, nNumAnnealingRuns, nPredictionMode, pCalibration, sHandModelFileName);
46 m_bIsProcessing =
false;
48 m_bReadyForLocalising =
false;
60 delete[] m_pSensorConfig;
61 delete[] m_pEstimatedConfig;
74 return m_bIsProcessing;
86 printf(
"HandLocalisationThread::GetResult\n");
92 pEstimatedConfig[i] = m_pEstimatedConfig[i];
94 dConfidenceRating = m_dConfidenceRating;
102 const CByteImage* pNewCamImageRight,
103 const double* pSensorConfig)
105 printf(
"HandLocalisationThread::Localise\n");
107 if (!m_bIsProcessing)
109 ImageProcessor::CopyImage(pNewCamImageLeft, m_pNewCamImageLeft);
110 ImageProcessor::CopyImage(pNewCamImageRight, m_pNewCamImageRight);
113 m_pSensorConfig[i] = pSensorConfig[i];
115 m_bIsProcessing =
true;
116 m_bReadyForLocalising =
true;
126 if (m_bReadyForLocalising)
128 printf(
"HandLocalisationThread: Starting localisation\n");
133 m_dConfidenceRating);
135 m_bIsProcessing =
false;
136 m_bReadyForLocalising =
false;
137 printf(
"HandLocThread: Confidence %f\n", m_dConfidenceRating);
138 printf(
"HandLocalisationThread: Localisation finished\n");
142 Threading::SleepThread(10);
#define DSHT_NUM_PARAMETERS
~HandLocalisationThread() override
HandLocalisationThread(int nNumParticles, int nNumAnnealingRuns, int nPredictionMode, CStereoCalibration *pCalibration, std::string sHandModelFileName)
int ThreadMethod() override
CHandLocalisation * m_pHandLocalisation
void Localise(const CByteImage *pNewCamImageLeft, const CByteImage *pNewCamImageRight, const double *pSensorConfig)
void GetResult(double *pEstimatedConfig, double &dConfidenceRating)