OpenCV: Détection des lumières clignotantes dans un flux vidéo

voix
11

J'ai un flux vidéo. Ce flux vidéo contient plusieurs lumières clignotantes à des rythmes différents. Toutes les lumières sont de la même couleur (ils sont tous les LED infrarouges). Comment puis-je détecter la position et la fréquence de ces lumières clignotantes?

Disclaimer: Je suis très nouveau pour OpenCV. J'ai une copie de l' apprentissage OpenCV , mais je trouve un peu écrasante. Si quelqu'un pourrait expliquer une solution dans la terminologie OpenCV, il serait grandement apprécié. Je ne m'y attendais pas du code à écrire pour moi.

Créé 01/09/2009 à 22:58
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
9

Seuil de chaque image dans la séquence avec un seuil qui rend la LED: s visible. Si vous pouvez le seuil avec un seuil qui ne garde la LED et supprime fond alors vous êtes plus ou moins terminé puisque tout ce que vous devez faire est maintenant de garder une trace de chaque position qui a vu une LED et de compter combien de fois il se produit.

Comme une étape intermédiaire, s'il y a « bruit de fond » dans l'image seuillée serait d'utiliser l'érosion pour éliminer les petites erreurs, puis se dilatent peut-être des « trous » dans les proches blobs vous êtes réellement intéressé par.

Si la scène est statique, vous pouvez aussi faire un modèle simple de fond en prenant la médiane de quelques images et en supprimant l'image médiane résultant d'une trame et seuil. Stuff qui a changé (vos LED) apparaît plus forte.

Si la scène est en mouvement, je ne vois pas d'autre solution (facile) que assurant que la LED sont suffisamment lumineux pour être en mesure d'utiliser l'approche de seuil donnée ci-dessus.

En ce qui concerne OpenCV: si vous savez ce que vous voulez faire, il est très difficile de trouver une fonction qu'il fait. Le plus dur est à venir avec une méthode pour résoudre le problème, pas le codage réel.

Créé 02/09/2009 à 09:42
source utilisateur

voix
1

Si les voyants sont stationnaires, le problème est beaucoup plus simple que quand ils sont en mouvement. Si l'on suppose qu'ils sont stationnaires, une solution pour trouver la fréquence pourrait simplement consister à maintenir un vecteur ou un tableau pour chaque emplacement de pixel dans lequel vous stockez les valeurs de ce pixel, de préférence après le pré-traitement décrit par kigurai, sur un certain laps de temps. Vous pouvez ensuite calculer la 1D transformée de Fourier ces vecteurs de valeur et de trouver la fréquence sol comme le premier élément important après le pic DC. Si le pic DC est trop faible, cela signifie qu'il n'y a pas conduit là.

Espérons que ce problème est encore un peu réelle, et que ma solution est logique.

Créé 14/10/2009 à 08:46
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more