Bonjour à tous!
J'ai un problème dans mon filtre de Kalman. Pour résumer, j'ai une matrice "measurement" que j'ai initialisé comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CvMat* m_pMeasurement = cvCreateMat(4,1,CV_32FC1);
Ensuite dans mon filtre, j'ai une matrice qui donne les coordonnées d'un point et son vecteur vitesse. Cette matrice est initialisée de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CvMat* kalman->state_post = cvCreateMat( 4, 1, CV_32FC1 )
Ensuite, je fixe les 4 valeurs de ma matrice m_pMeasurement (par exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
this->m_pMeasurement->data.fl[0] = 10;
this->m_pMeasurement->data.fl[1] = 20;
this->m_pMeasurement->data.fl[2] = 3;
his->m_pMeasurement->data.fl[3] = 4;
Et pour terminer, je copie cette matrice dans state_post (le problème est là, j'ai essayé deux façons
Code : Sélectionner tout - Visualiser dans une fenêtre à part
memcpy(KalmanFilter->state_post->data.fl,m_pMeasurement->data.fl,sizeof(m_pMeasurement));
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
memcpy(KalmanFilter->state_post->data.fl,m_pMeasurement,sizeof(m_pMeasurement));
Et le résultat ne correspond pas à la réalité (quand je le lis state_post à l'écran):
- Avec la façon 1, j'ai tout à zéro (les valeurs initiales de state_post)
- Avec la façon 2, j'ai seulement data.fl[0] qui est correct, les autres sont faux (les valeurs sont à 0)
Où se trouve l'erreur? Merci d'avance pour votre aide