Taula de continguts:
- Pas 1: els fitxers de capçalera
- Pas 2: captura del vídeo
- Pas 3: captura del marc i definició del color
- Pas 4: emmascarament i extracció
- Pas 5: finalment es mostra
- Pas 6: demostració
Vídeo: Detecció senzilla de colors mitjançant OpenCV: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Hola! Avui mostraré un mètode senzill de detecció d’un color d’un vídeo en directe mitjançant OpenCV i python.
Bàsicament, només provaré que el color requerit estigui present o no en el marc de fons i utilitzant mòduls OpenCV emmascararé aquesta regió i mostraré simultàniament el marc.
Pas 1: els fitxers de capçalera
Ara he utilitzat dos fitxers de capçalera cv2 i NumPy. Bàsicament cv2 és la biblioteca OpenCV que carrega tots els fitxers c ++ que són importants mentre s’utilitzen les ordres dels codis (conté totes les definicions).
I Numpy és una biblioteca python que és essencial per emmagatzemar una matriu multidimensional. Farem servir per emmagatzemar les nostres coordenades de gamma de colors.
I numpy com a np bàsicament ajuda al nostre codi a escurçar-se una mica fent servir np cada vegada en lloc de numpy.
Pas 2: captura del vídeo
Això és bastant senzill mentre s’utilitza Python. Aquí només hem d’encendre la gravadora de vídeo perquè pugui començar a gravar els fotogrames.
Ara el valor dins del VideoCapture indica la càmera, en el meu cas la càmera està connectada al meu ordinador portàtil, de manera que 0.
Podeu anar de manera similar a 1 per a la càmera secundària, etc. VideoCapture crea l'objecte per a això.
Pas 3: captura del marc i definició del color
Ara hem de fer alguna cosa perquè puguem capturar el fotograma instantani del vídeo que ens ajudi a extreure la imatge i puguem treballar-hi segons els requisits.
bucle "while" ens ajudarà a executar el bucle al nostre temps requerit. Ara "_, frame = cap.read ()" s'utilitza per comprovar la validesa del Frame capturat i emmagatzemar-lo. "cap.read () és una variable booleana i torna true si el marc es llegeix correctament i, si no obteniu cap marc, no mostrarà cap error, simplement obtindreu Cap.
Ara la línia 11 i la línia 12 defineixen bàsicament l’interval de color que hem de detectar. Per a això, he acostumat al color blau.
Podeu continuar amb qualsevol color per al qual necessiteu només escriure valors BGR per a aquell color en particular. És millor definir dues matrius que utilitzen matrius numpy ja que la detecció d’un color concret al món real no servirà per al nostre propòsit, sinó que definirem un rang de color blau perquè es detecti dins de l’interval.
Per a això, he definit dues variables que emmagatzemen els valors BGR inferiors i els valors BGR superiors.
Pas 4: emmascarament i extracció
Ara ve la tasca principal d’emmascarar el marc i extreure el color del marc. He utilitzat les ordres predefinides presents a la biblioteca a OpenCV per fer l’emmascarament. Bàsicament l’emmascarament és el procés d’eliminació d’alguna porció del marc, és a dir, eliminarem els píxels els valors dels quals BGR de color no es trobin en l’interval de colors definit i això es fa mitjançant cv2.inRange. Després, apliquem el rang de color a la imatge emmascarada en funció dels valors de píxels i, per a això, utilitzarem cv2.bitwise_and, simplement assignarà els colors a la regió emmascarada en funció dels valors de la màscara i del rang de colors.
Enllaç per a cv2. bitwise_and:
Pas 5: finalment es mostra
Aquí he utilitzat cv2.imshow () bàsic per mostrar per a cada fotograma com a imatge. Com que tinc les dades del marc emmagatzemades en variables, les puc recuperar a imshow (). Aquí he mostrat els tres marcs, originals, emmascarats i de colors.
Ara hem de sortir del bucle while. Per a això, simplement podem implementar cv2.wait. Key (). Bàsicament indica el temps d'espera abans de respondre. Així que si passes 0, esperarà infinitament i 0xFF diu que l'arquitectura és de 64 bits. "ord ()" especifica el caràcter que, quan es prem, executarà l'ordre break en si bloqueja i sortirà del bucle.
A continuació, cap.release () tanca la gravadora de vídeo i cv2.destroyAllWindows () tanca totes les finestres obertes.
Si teniu algun problema, feu-m'ho saber.
Enllaç al codi font:
Recomanat:
Detecció de color a Python mitjançant OpenCV: 8 passos
Detecció de colors a Python mitjançant OpenCV: Hola! Aquesta instrucció s'utilitza per guiar sobre com extreure un color específic d'una imatge en python mitjançant la biblioteca openCV. Si no coneixeu aquesta tècnica, no us preocupeu, al final d'aquesta guia podreu programar el vostre propi color
Selector de colors Arduino RGB: seleccioneu els colors dels objectes de la vida real: 7 passos (amb imatges)
Arduino RGB Color Picker: seleccioneu els colors dels objectes de la vida real: escolliu fàcilment els colors dels objectes físics amb aquest selector de colors RGB basat en Arduino, que us permetrà recrear els colors que veieu als objectes de la vida real al vostre PC o telèfon mòbil. Simplement premeu un botó per escanejar el color de l'objecte amb un TCS347 barat
Càmera web més senzilla com a càmera de seguretat: detecció de moviment i imatges enviades per correu electrònic: 4 passos
Càmera web més senzilla com a càmera de seguretat: detecció de moviment i imatges enviades per correu electrònic: ja no cal que descarregueu ni configureu programari per obtenir imatges detectades de moviment des de la vostra càmera web fins al vostre correu electrònic; només cal que utilitzeu el navegador. Utilitzeu un navegador Firefox, Chrome, Edge o Opera actualitzat a Windows, Mac o Android per capturar la imatge
Detecció d'objectes W / Dragonboard 410c o 820c mitjançant OpenCV i Tensorflow .: 4 passos
Object Detection W / Dragonboard 410c o 820c mitjançant OpenCV i Tensorflow. Aquest document descriu com instal·lar OpenCV, Tensorflow i frameworks d’aprenentatge automàtic per Python 3.5 per executar l’aplicació Detecció d’objectes
Seguretat domèstica de bricolatge: com fer una detecció de moviment senzilla Nova versió: 6 passos
Seguretat domèstica de bricolatge: com fer una detecció de moviment senzilla Nova versió: en aquest projecte us mostraré com fer una alarma de notificació de moviment de seguretat casolana de bricolatge de baix cost. Vegeu la versió anterior: Com crear un sistema de seguretat WiFi de 10 dòlars a casa