Innehållsförteckning:
- Steg 1: Rubrikfilerna
- Steg 2: Spela in videon
- Steg 3: Fånga ram och definiera färg
- Steg 4: Maskera och extrahera
- Steg 5: Äntligen visas
- Steg 6: Demo
Video: Enkel färgdetektering med OpenCV: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
Hej! Idag ska jag visa en enkel metod för att upptäcka en färg från en livevideo med OpenCV och python.
I grund och botten testar jag bara den färg som krävs i bakgrundsramen eller inte och med OpenCV -moduler kommer jag att maskera den regionen och samtidigt visa ramen.
Steg 1: Rubrikfilerna
Nu här har jag använt två rubrikfiler, nämligen cv2 och NumPy. I grund och botten är cv2 OpenCV -biblioteket som laddar alla c ++ - filer som är viktiga när kommandona i koderna används (den innehåller alla definitioner).
Och Numpy är ett pythonbibliotek som är viktigt för att lagra en flerdimensionell array. Vi kommer att använda för att lagra våra färgkoordinater.
Och numpy as np hjälper i princip vår kod att förkorta lite genom att använda np varje gång istället för numpy.
Steg 2: Spela in videon
Detta är ganska enkelt när du använder python. Här behöver vi bara slå på videobandspelare så att den kan börja spela in ramarna.
Nu indikerar värdet i VideoCapture kameran, i mitt fall är kameran ansluten till min bärbara dator, så 0.
Du kan gå på samma sätt som 1 för den sekundära kameran och så vidare. VideoCapture skapar objektet för det.
Steg 3: Fånga ram och definiera färg
Nu måste vi göra något så att vi kan fånga den snabba ramen i videon som hjälper oss att extrahera bilden och vi kan arbeta med det enligt kraven.
"while" -slinga hjälper oss att köra slingan till vår kravtid. Nu används "_, frame = cap.read ()" för att kontrollera giltigheten av den fångade ramen och lagra den. "cap.read () är en booleska variabel och returnerar true om ramen läses korrekt och om du inte får några ramar kommer det inte att visa något fel, du får helt enkelt None.
Nu definierar rad 11 och linje 12 i princip det färgintervall vi behöver upptäcka. För detta har jag brukat blå färg.
Du kan fortsätta med vilken färg som helst som du behöver bara skriva BGR -värden för just den färgen. Det är bättre att definiera två matriser med numpy -arrays eftersom detektering av en viss färg i den verkliga världen inte kommer att tjäna vårt syfte, snarare kommer vi att definiera ett intervall av blå färg så att den detekterar inom intervallet.
För detta har jag definierat två variabler som lagrar de lägre BGR -värdena och de övre BGR -värdena.
Steg 4: Maskera och extrahera
Nu kommer här huvuduppgiften att maskera ramen och extrahera färgen på ramen. Jag använde de fördefinierade kommandona som finns i biblioteket i OpenCV för att göra maskeringen. I grund och botten är maskering processen att ta bort en del av ramen, dvs vi kommer att ta bort pixlarna vars BGR -värden som inte ligger i det definierade färgintervallet och detta görs av cv2.inRange. Därefter applicerar vi färgintervallet på den maskerade bilden beroende på pixelvärdena och för detta kommer vi att använda cv2.bitwise_and, Det kommer helt enkelt att tilldela färgerna till det maskerade området beroende på maskens och färgintervallets värden.
Länk till cv2. bitvis_och:
Steg 5: Äntligen visas
Här har jag använt den grundläggande cv2.imshow () för att visa för varje bildruta som en bild. Eftersom jag har ramdata lagrade i variabler kan jag hämta dem i imshow (). Här har jag visat alla tre ramarna, original, maskerade och färgade.
Nu måste vi lämna while -slingan. För detta kan vi helt enkelt implementera cv2.wait. Key (). I princip berättar det väntetiden innan du svarar. Så om du passerar 0 väntar det oändligt och 0xFF säger att arkitekturen är 64bit. "ord ()" anger tecknet som när det trycks kommer att utföra kommandot break i if block och det kommer ut ur slingan.
Sedan stänger cap.release () videoinspelaren och cv2.destroyAllWindows () stänger alla öppnade fönster.
Meddela mig om du har några problem.
Länk till källkoden:
Rekommenderad:
Färgdetektering Färgmaskin: 4 steg
Färgdetekteringsfärgsmaskin: Färgidentifieringsfärgmaskin kopierar färger runt dig och låter dig rita med dem. Om du har färgen av primärfärger kan du använda RGB -färgsensorn för att känna av vilken färg du vill ha och blanda ut den. Men kom ihåg, använd objektet med ljus färg
Färgdetektering i Python med OpenCV: 8 steg
Färgdetektering i Python med OpenCV: Hej! Denna instruerbara används för att vägleda med hur man extraherar en specifik färg från en bild i python med hjälp av openCV -bibliotek. Om du är ny på den här tekniken, oroa dig inte, i slutet av den här guiden kommer du att kunna programmera din egen färg
Enkel enkel läxmaskin: 4 steg (med bilder)
Enkel enkel läxmaskin: Denna maskin är byggd med billiga material och går inte över 7 $ för att bygga. För att bygga detta behöver du lite tålamod och 2 timmar. Och du måste vara bekant med lödning och ledningar eftersom detta innebär en liten krets. När det är byggt är det bara att ansluta
Färgdetektering med RGB LED: 4 steg
Färgdetektering med RGB LED: Har du någonsin velat ha ett automatiserat sätt att upptäcka färgen på ett objekt? Genom att lysa med en viss färg på objektet och titta på hur mycket ljus som reflekteras tillbaka kan du se vilken färg objektet har. Om du till exempel lyser rött ljus
En enkel, billig och enkel LED-blinkande krets med CMOS 74C14: 5 steg
En lätt att göra, billig och enkel LED-blinkande krets med CMOS 74C14: Ibland behöver du bara några blinkande lysdioder, för juldekoration, blinkande konstverk eller bara för att ha kul med blink blink blink. Jag ska visa dig hur du gör en billig och enkel krets med upp till 6 blinkande lysdioder. Obs: Detta är min första instuktiv och