Πίνακας περιεχομένων:
- Βήμα 1: Τα αρχεία κεφαλίδας
- Βήμα 2: Λήψη βίντεο
- Βήμα 3: Λήψη πλαισίου και καθορισμός χρώματος
- Βήμα 4: Κάλυψη και εξαγωγή
- Βήμα 5: Επιτέλους εμφάνιση
- Βήμα 6: Επίδειξη
Βίντεο: Απλή ανίχνευση χρώματος χρησιμοποιώντας OpenCV: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Γεια! Σήμερα θα δείξω μια απλή μέθοδο ανίχνευσης χρώματος από ένα ζωντανό βίντεο χρησιμοποιώντας OpenCV και python.
Βασικά θα δοκιμάσω απλώς το απαιτούμενο χρώμα που υπάρχει στο πλαίσιο του φόντου ή όχι και χρησιμοποιώντας τις ενότητες OpenCV θα καλύψω αυτήν την περιοχή και ταυτόχρονα θα εμφανίσω το πλαίσιο.
Βήμα 1: Τα αρχεία κεφαλίδας
Τώρα εδώ έχω χρησιμοποιήσει δύο αρχεία κεφαλίδας, δηλαδή cv2 και NumPy. Βασικά cv2 είναι η βιβλιοθήκη OpenCV που φορτώνει όλα τα γ ++ αρχεία που είναι σημαντικά, ενώ χρησιμοποιώντας τις εντολές των κωδικών (περιέχει όλα τα ορισμούς).
Και το Numpy είναι μια βιβλιοθήκη python που είναι απαραίτητη για την αποθήκευση ενός πολυδιάστατου πίνακα. Θα χρησιμοποιήσουμε για να αποθηκεύσουμε τις συντεταγμένες χρωμάτων μας.
Και το numpy as np βασικά βοηθά τον κώδικα μας να συντομευτεί κάπως χρησιμοποιώντας το np κάθε φορά αντί για numpy.
Βήμα 2: Λήψη βίντεο
Αυτό είναι αρκετά απλό κατά τη χρήση python. Εδώ πρέπει απλώς να ενεργοποιήσουμε τη συσκευή εγγραφής βίντεο έτσι ώστε να μπορεί να ξεκινήσει την εγγραφή των καρέ.
Τώρα η τιμή μέσα στο VideoCapture υποδεικνύει την κάμερα, στην περίπτωσή μου η κάμερα είναι συνδεδεμένη στο φορητό υπολογιστή μου, άρα 0.
Μπορείτε να πάτε παρόμοια με το 1 για τη δευτερεύουσα κάμερα και ούτω καθεξής. Το VideoCapture δημιουργεί το αντικείμενο για αυτό.
Βήμα 3: Λήψη πλαισίου και καθορισμός χρώματος
Τώρα εδώ πρέπει να κάνουμε κάτι για να μπορέσουμε να καταγράψουμε το στιγμιαίο καρέ του βίντεο που θα μας βοηθήσει να εξαγάγουμε την εικόνα και να το δουλέψουμε σύμφωνα με τις απαιτήσεις.
Ο βρόχος "while" θα μας βοηθήσει να εκτελέσουμε τον βρόχο στον χρόνο απαίτησής μας. Τώρα το "_, frame = cap.read ()" χρησιμοποιείται για τον έλεγχο της εγκυρότητας του πλαισίου που έχει καταγραφεί και το αποθηκεύει. «Cap.read () είναι μια boolean μεταβλητή και επιστρέφει true αν το πλαίσιο διαβάζεται σωστά και αν έχετε κανένα καρέ δεν θα δείξει κανένα λάθος, θα πάρετε απλά Καμία.
Τώρα η γραμμή 11 και η γραμμή 12 καθορίζουν βασικά το εύρος του χρώματος που πρέπει να ανιχνεύσουμε. Για αυτό, έχω συνηθίσει το μπλε χρώμα.
Μπορείτε να προχωρήσετε με οποιοδήποτε χρώμα για αυτό χρειάζεται μόνο να πληκτρολογήσετε τιμές BGR για το συγκεκριμένο χρώμα. Είναι καλύτερα να ορίσετε δύο πίνακες χρησιμοποιώντας αριθμημένους πίνακες καθώς η ανίχνευση ενός συγκεκριμένου χρώματος στον πραγματικό κόσμο δεν θα εξυπηρετήσει τον σκοπό μας, αλλά θα ορίσουμε μια περιοχή μπλε χρώματος έτσι ώστε να ανιχνεύει εντός της εμβέλειας.
Για αυτό, έχω ορίσει δύο μεταβλητές που αποθηκεύουν τις χαμηλότερες τιμές BGR και τις ανώτερες τιμές BGR.
Βήμα 4: Κάλυψη και εξαγωγή
Τώρα εδώ έρχεται το κύριο καθήκον της κάλυψης του πλαισίου και της εξαγωγής του χρώματος του πλαισίου. Χρησιμοποίησα τις προκαθορισμένες εντολές που υπάρχουν στη βιβλιοθήκη στο OpenCV για να κάνω την κάλυψη. Βασικά η κάλυψη είναι η διαδικασία αφαίρεσης κάποιου μέρους του πλαισίου, δηλαδή θα αφαιρέσουμε τα εικονοστοιχεία των οποίων οι τιμές των τιμών BGR που δεν βρίσκονται στο καθορισμένο εύρος χρωμάτων και αυτό γίνεται με το cv2.inRange. Στη συνέχεια, εφαρμόζουμε το εύρος χρωμάτων στη μάσκα εικόνας ανάλογα με τις τιμές των εικονοστοιχείων και για αυτό, θα χρησιμοποιήσουμε cv2.bitwise_and, Απλώς θα εκχωρήσει τα χρώματα στην περιοχή της μάσκας ανάλογα με τις τιμές μάσκας και εύρους χρώματος.
Σύνδεσμος για cv2. bitwise_and:
Βήμα 5: Επιτέλους εμφάνιση
Εδώ έχω χρησιμοποιήσει το βασικό cv2.imshow () για εμφάνιση για κάθε καρέ ως εικόνα. Δεδομένου ότι έχω τα δεδομένα πλαισίου αποθηκευμένα σε μεταβλητές, μπορώ να τα ανακτήσω στο imshow (). Εδώ έχω εμφανίσει και τα τρία πλαίσια, πρωτότυπα, καλυμμένα και έγχρωμα.
Τώρα πρέπει να βγούμε από τον βρόχο while. Για αυτό, μπορούμε απλά να εφαρμόσουμε το cv2.wait. Key (). Βασικά λέει τον χρόνο αναμονής πριν απαντήσετε. Έτσι, αν περάσετε το 0 θα περιμένει άπειρα και το 0xFF λέει ότι η αρχιτεκτονική είναι 64bit. «Ord ()» διευκρινίζει ο χαρακτήρας ότι όταν πατηθεί θα εκτελέσει την εντολή διάλειμμα στην περίπτωση μπλοκ και θα βγει από το βρόχο.
Στη συνέχεια, το cap.release () κλείνει τη συσκευή εγγραφής βίντεο και το cv2.destroyAllWindows () κλείνει όλα τα ανοιχτά παράθυρα.
Εάν έχετε οποιοδήποτε πρόβλημα, ενημερώστε με.
Σύνδεσμος προς πηγαίο κώδικα:
Συνιστάται:
Πώς να φτιάξετε ένα κουδούνι πόρτας χωρίς άγγιγμα, Ανίχνευση θερμοκρασίας σώματος, GY-906, 433MHz χρησιμοποιώντας Arduino: 3 βήματα
Πώς να φτιάξετε ένα κουδούνι πόρτας χωρίς άγγιγμα, Ανίχνευση θερμοκρασίας σώματος, GY-906, 433MHz χρησιμοποιώντας το Arduino: Σήμερα θα φτιάξουμε ένα κουδούνι πόρτας μη αφής, θα ανιχνεύσει τη θερμοκρασία του σώματός σας. Σε αυτήν την κατάσταση, είναι πολύ σημαντικό να γνωρίζουμε εάν η θερμοκρασία του σώματος είναι υψηλότερη από την κανονική, όταν κάποιος κοροϊδεύει. Αυτό το έργο θα δείχνει Κόκκινο φως αν εντοπίσει οποιαδήποτε
Ανίχνευση χρωμάτων σε Python χρησιμοποιώντας OpenCV: 8 βήματα
Ανίχνευση χρωμάτων σε Python χρησιμοποιώντας OpenCV: Γεια σας! Αυτό το εκπαιδευτικό εργαλείο χρησιμοποιείται για να μάθετε πώς μπορείτε να εξαγάγετε ένα συγκεκριμένο χρώμα από μια εικόνα σε python χρησιμοποιώντας βιβλιοθήκη openCV. Εάν είστε νέοι σε αυτήν την τεχνική, τότε μην ανησυχείτε, στο τέλος αυτού του οδηγού θα μπορείτε να προγραμματίσετε το δικό σας χρώμα
Ανίχνευση αντικειμένου W/ Dragonboard 410c ή 820c χρησιμοποιώντας OpenCV και Tensorflow .: 4 βήματα
Ανίχνευση αντικειμένου W/ Dragonboard 410c ή 820c Χρήση OpenCV και Tensorflow .: Αυτά τα εγχειρίδια περιγράφουν τον τρόπο εγκατάστασης πλαισίων OpenCV, Tensorflow και μηχανικής μάθησης για το Python 3.5 για την εκτέλεση της εφαρμογής Ανίχνευσης αντικειμένων
Μετάβαση χρώματος στο POP-X2 GLCD χρησιμοποιώντας ένα κουμπί: 6 βήματα
Μετάβαση χρώματος στο POP-X2 GLCD Χρησιμοποιώντας ένα κουμπί: Βασικά, αυτό το έργο δείχνει ένα χαρακτηριστικό μιας πλακέτας ελεγκτή που μου αρέσει να χρησιμοποιώ. Ο πίνακας POP-X2, κατασκευασμένος από INEX, διαθέτει ενσωματωμένο έγχρωμο GLCD, πόμολο, θύρες εισόδου/εξόδου και εξαρτήματα παρόμοια με άλλες πλακέτες ελεγκτή. Ελέγξτε το εγχειρίδιο του πίνακα για
Ανιχνευτής φωτός, Χωρίς μικροεπεξεργαστές, Απλή απλή ηλεκτρονική :): 3 βήματα
Ανιχνευτής φωτός, Χωρίς μικροεπεξεργαστές, Απλή απλή ηλεκτρονική :): Θα σας δείξω δύο κυκλώματα, το ένα σβήνει ένα LED όταν δεν υπάρχει φως και το άλλο ανάβει ένα LED όταν δεν υπάρχει φως. για το πρώτο θα χρειαστείτε: -R1 (LDR) 10K -R2 (1.2K) κωδικός χρώματος: καφέ, κόκκινο, κόκκινο. -R3 (10 ωμ) κωδικός χρώματος: καφέ μαύρο