Je souhaite définir l'orientation et l'emplacement du rectangle à partir de la webcam. J'ai utilisé l'algorithme camshift, mais il a donné de mauvais résultats (forte dépendance à l'éclairage). Dites-moi quels mécanismes existent pour résoudre ce problème. Peut-être quitte le code source avec un programme similaire?Suivi de rectangles avec opencv
Répondre
Ce n'est qu'une idée.
Je pense généralement à la discrimination pour séparer l'objet que je veux détecter/suivre. Je sais que vous pouvez détecter des rectangles en utilisant d'autres méthodes.
Je préfère obtenir une image binarisée que seul mon objet, ou quelques-uns d'entre eux incluant mon objet cible, incluent.
Après cela, travaillez avec des blobs. J'utilise la bibliothèque cvBlobs et j'ai l'option de suivre les blobs et de détecter les blobs. Dans cette bibliothèque, la méthode est d'obtenir un angle (orientation), vous pouvez essayer cette option.
double cvAngle(CvBlob *blob);
Si vos rectangles se déplace essayer de le détecter en utilisant la différence entre les images.
Sory pour ce long discours. Je souhaite que cela pourrait vous aider. Jorge
Je ne suis pas tout à fait sûr de ce que « Rectangle » vous parlez, quelques captures d'écran ou une meilleure description serait génial:
1: Si vous avez des problèmes avec la foudre, vous devriez envisager de développer vos propres algorithmes pour neutraliser le bruit, en convertissant votre image en une image binaire et faire la soustraction d'arrière-plan (selon l'installation et l'initialisation), éroder et dilater etc., bien que ce soit un autre long sujet qui mérite d'être étudié.
2: Qu'est-ce que vous pouvez faire est d'abord, vous trouverez tous les contours autour de votre rectangle, cela peut être fait avec la fonction OpenCV findContours(); (Souvenons image doit être binaire) Stocké tous vos points de contour, vous pouvez par la suite envoyer les informations à une autre fonction OpenCV minAreaRect();
Stockez les informations de minAreaRect(), qui est une structure de type RotatedRect; au sein d'une variable, et plongez dans la struct pour extraire le degré de rotation avec:
variablename.degree
Il est bon Algoritm réalisable dans l'échantillon, le dossier OpenCV = square.cpp. Besoin d'un petit remake (int main) pour la vidéo (CvCapture) sauf image. Cela fonctionne bien.
- 1. Détection de perspective avec OpenCv
- 2. Déterminer l'aire de l'intersection de deux rectangles
- 3. Détection de tir avec OpenCV
- 4. traitement vidéo avec opencv
- 5. Comportement étrange avec OpenCV
- 6. comparaison de rectangles
- 7. Recadrer l'image avec OpenCV
- 8. Remplir le panneau avec des rectangles
- 9. C# WinForms - panneau avec des rectangles scrollable
- 10. Détection de valeur OpenCV RVB?
- 11. Rectangles & Parsing dans vb.net
- 12. Reconnaissance de visage OpenCV/EmguCV
- 13. Rectangles graphiques Java 2D
- 14. Performance de RaphaelJS avec des milliers de chemins/rectangles
- 15. L'image de paysage à portrait avec opencv
- 16. Reconnaissance de plaque d'immatriculation avec OpenCV
- 17. rectangles alignés axialement intersection
- 18. Problèmes avec CamShift sur l'interface OpenCV C++
- 19. Affichage des rectangles dans la fenêtre de jeu avec XNA
- 20. types de données OpenCV
- 21. Détection de collision entre deux rectangles
- 22. Comment trouver des rectangles de zone libre?
- 23. Problème de détection d'oeil dans Opencv
- 24. installer opencv pour les problèmes de python
- 25. Suivi/détection d'objets dans la vidéo Flash
- 26. Opencv Extraction de bords
- 27. problème de lien OpenCV
- 28. Détection de blob OpenCV
- 29. Zone de grille OpenCV
- 30. OpenCV HoughCircles