Bonjour,
d'après la FAQ (http://osdir.com/ml/lib.opencv/2006-03/msg00332.html) je peux accéder a une matrix CvMat *mat de type float avec la fonction:
CV_MAT_ELEM( mat, float, 0, 0 ) = 1.f;
j'ai essayer cela pour initialiser le predictor de kalman:
Et j'obtiens les erreur suivantes à la compilation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CvKalman* kalman = cvCreateKalman(4,2,0); ... CV_MAT_ELEM(kalman->state_post,float,0,0) = (float)x; CV_MAT_ELEM(kalman->state_post,float,0,1) = (float)y;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 src\kalman.c: In function `initKalman': src\kalman.c:67: error: request for member `rows' in something not a structure or union src\kalman.c:67: error: request for member `cols' in something not a structure or union src\kalman.c:67: error: request for member `data' in something not a structure or union src\kalman.c:67: error: request for member `step' in something not a structure or union src\kalman.c:67: error: invalid type argument of `unary *' Build error occurred, build is stopped
Si qqun peux m'expliquer pourquoi j'obtiens ces erreurs ca serait sympa.
PS: pour l'instant j'utilise la methode classic d'acceder au pointeur, mais je trouve plus jolie l'autre methode!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 p = (float*)kalman->state_post->data.fl; p[0] = (float)x; p[1] = (float)y;
Partager