7
votes

Comment extraire des vecteurs de vélocité du débit optique dense?

Problème: J'essaie d'aligner deux cadres d'une vidéo mobile.

Je tente actuellement d'utiliser la fonction "cvcalcopticalflockk" et le résultat génère des vecteurs de vitesse de x et y sous la forme d'un "CVarr".

J'ai donc obtenu le résultat, mais je ne sais pas comment utiliser ces tableaux vectoriels.

Ma question est la suivante ... Comment puis-je savoir quelle est la vitesse de chaque pixel? Est-ce juste la valeur de chaque valeur de pixels à ce point particulier?

Remarque: j'aurais utilisé les autres fonctions d'écoulement optique telles que cvcalcopticalflowpyrlk () car il est beaucoup plus facile, mais je veux le flux optique dense.


1 commentaires

J'ai donc joué avec l'image résultante et je vais avec l'hypothèse que chaque valeur de pixel représente la vitesse de chaque pixel, mais dans quelles unités sont mesurées exactement? Est-ce que quelqu'un sait comment ces "valeurs de vélocité" correspondent à la vitesse de ce pixel? Est-ce pixel par cadre? Ou autre chose? La valeur de chaque pixel est en virgule flottante 32 bits.


3 Réponses :


4
votes

Apparemment, mon hypothèse d'origine était vraie. Les sorties "velx" et "velaires" de la fonction d'écoulement optique sont les vitesses réelles de chaque valeur de pixel. Pour les extraire le mieux, j'ai accédé au pixel des données brutes et a tiré la valeur. Il y a 2 façons de faire cela.

CVGET2D () - De cette façon est plus lent, mais si vous n'avez besoin que d'accès 1 pixel, ça va.

ou

(Uchar *) (image-> imagétata + hauteur * image-> widthstep + largeur);

(l'image est une iplimage, une largeur et une hauteur ne sont que des largeurs et des hauteurs correspondantes de l'image)


0 commentaires

0
votes

Si vous avez besoin des vecteurs de mouvement pour chaque pixel, vous devez calculer ce qu'on appelle «flux optique dense». À partir de OPENCV 2.1, il existe une fonction de faire exactement que: Calcopticalflowfarneback.

Voir le lien ci-dessous: http://opencv.itsezez.com/modules /Video/doc/motion_Analysis_and_object_tracking.html?highlight=calcopticalflowfarneback#cv2.calcopticalflowfarneback


0 commentaires

0
votes

velx et velaire sont un écoulement optique non la vitesse réelle. La méthode que vous avez utilisée est obsolète. Utilisez ce Calcopticalfowfarneback ()


0 commentaires