Jacobien et descente la plus pentue
bonjour ;
je voudrais calculé le steepest descent d'une image en utilisant l'opencv
leur formule est
http://www.codeproject.com/KB/recipe...l_22a3dc10.gif
pour faire ça je dois
1-calculé le gradient http://www.codeproject.com/KB/recipe..._m598b0001.gif avec W(x,p)
2-ensuite calculer le jacobien http://www.codeproject.com/KB/recipe...l_4f527f32.gif dans (x,p)
Note: il faut noté que je fais ces calculé pour résoudre un problème d'alignement où l'image dans le premier frame est "T" et dans le deuxiéme est 'I') le pixel (u,v) et de premier image quands je multiplié ce pixel avec la matrice W j'obtiens (u2,v2) dans le deuxième frame
je vous présenté maintenant comment j'ai le calculé pour une matrice w
http://www.codeproject.com/KB/recipe..._m3845b468.gif
dans cette matrice il y a un vecteur p =(wz, tx, ty);
pour calculé le gradient j'ai fait ça
Code:
1 2 3 4
| cvSobel(pImgI, pGradIx, 1, 0); // Gradient in X direction
cvConvertScale(pGradIx, pGradIx, 0.125); // Normalize
cvSobel(pImgI, pGradIy, 0, 1); // Gradient in Y direction
cvConvertScale(pGradIy, pGradIy, 0.125); // Normalize |
ensuite la 1 ére étape est calculé comme ça
Code:
1 2
| float Ix = interpolate<short>(pGradIx, u2, v2);
float Iy = interpolate<short>(pGradIy, u2, v2); |
enfin j'ai calculé le steepest decent comme cela
Code:
1 2 3 4 5
| // Calculate steepest descent image's element.
float stdesc[3]; // an element of steepest descent image
stdesc[0] = (float)(-v*Ix+u*Iy);
stdesc[1] = (float)Ix;
stdesc[2] = (float)Iy; |
je voudraos maintenant faire le même travail mais avec cette matrice
http://img105.herosh.com/2010/06/06/543138178.jpg
où comme on vu le vecteur p ne dépend pas seulement su (u,v) (l'emplacement du pixel) mais il dépend de 6 paramètre qui sont (x,y,z,wx,wy,wz)
j'ai pas pu le calculé dans cette cas la seul chose qui je connus que la matrice de stdesc doit être contenir 6 élément float stdesc[6];:lol:
pourriez vous m'aider pour le calculé SVP ma tête sera cassé et j'ai pas trouvé la solution :cry: