2011-04-20 8 views
4

En utilisant Python, OpenCV et l'entrée webcam en direct, je n'arrive pas à déterminer comment définir un point basé sur une coordonnée x y et suivre où il se déplace.Points de suivi Python OpenCV

Répondre

2

Il existe quelques blogs qui expliquent les bases. Consultez celui-ci: Object tracking in OpenCV and Python 2.6.

Édition: Je ne pense pas que vous puissiez suivre des points arbitraires. Pour pouvoir faire la correspondance entre un point dans deux images, vous devez savoir quelque chose d'unique sur le point à suivre. Ceci est souvent fait avec des points d'intérêt, qui sont "assez uniques" pour être comparés entre les images. D'autres méthodes sont basées sur making the point easy to detect en utilisant un schéma de projection.

+1

Ceci suit un objet d'une certaine couleur, pas un point qui a été précédemment défini sur la base des coordonnées x, y – None

+0

@None: voir mon édition. –

+0

J'ai vu une vidéo d'un programme opencv où vous pouviez cliquer sur un point n'importe où dans l'écran et il serait suivi – None

4

Voici un exemple simple pour suivre un objet jaune.

https://github.com/abidrahmank/OpenCV-Python/blob/master/Other_Examples/track_yellow_draw_line.py

Voici la méthode pour suivre la couleur jaune:

1) Extrait de la première image de la vidéo

2) Convertir image dans l'espace couleur HSV. Prenez le plan H et définissez-le comme étant de couleur jaune, de sorte que vous obteniez une image binaire avec un objet jaune comme étant blanc (également appelé blob) et restant noir.

3) Vous trouvez maintenant le point central du blob. Vous pouvez utiliser des moments ou des contours (surtout si vous avez plus d'un BLOB.) Dans l'exemple ci-dessus, une logique très simple est utilisée: trouvez simplement les points les plus à gauche, les plus à droite, les plus hauts et les plus bas. Et stocker ces valeurs.

4) Extraire l'image suivante et suivre toutes les étapes ci-dessus pour obtenir une nouvelle position. Rejoignez ces deux positions et tracez une ligne.

Sur.