Innehållsförteckning:
- Tillbehör
- Steg 1: Importera bibliotek
- Steg 2: Skapa spårfält
- Steg 3: Skapa TrackBars för nyans, mättnad och värde
- Steg 4: Hur man läser och ändrar storlek på bild
- Steg 5: Läsa spårfältvärden för att tillämpa det på en bild
- Steg 6: Visa bild och ställa in övre och nedre gräns
- Steg 7: Nu det sista steget
- Steg 8: Slututgångar
Video: Färgdetektering i Python med OpenCV: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
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å denna teknik, oroa dig inte, i slutet av den här guiden kommer du att kunna programmera ditt eget färgdetekteringsprogram.
Följande är funktionerna eller vi kan säga tekniker som du kommer att lära dig, 1. Hur man läser en bild
2. Hur man skapar spårbarer
3. Hur man justerar värdet för nyans, mättnad och värde för en bild med hjälp av spårfält
4. Och sedan kommer det att bli din slutliga produktion
Du kan titta på videon av utgången som jag har bifogat nedan.
Så låt oss komma igång
Tillbehör
- Python 3
- openCV -bibliotek
- numpy bibliotek
Steg 1: Importera bibliotek
Bilden är av gul ferrari som visas och vi kommer att programmera att extrahera endast gul färg från den bilden
Första steget är att importera våra bibliotek
1. Inklusive openCV -bibliotek. Det kallas cv2 i python
2. Inklusive numpy bibliotek som np. "As" tillåter oss att vi numpy som np så behöver inte skriva numpy om och om igen
Steg 2: Skapa spårfält
Spårfält skapas för att justera värdet för nyans, mättnad och värde i en bild.
cv2.namedWindow ("TrackBars") Denna kodrad används för att skapa ett nytt utmatningsfönster och fönstrets namn anges som TrackBars (Du kan ge valfritt namn)
cv2.resizeWindow ("TrackBars", 600, 250) Denna funktion används för att ändra storlek på ett fönster. "TrackBars" är för vilket fönster du vill ändra storlek eftersom jag ville ändra storlek på TrackBars -fönstret Jag har skrivit det namnet. Följt av två heltal. Dessa två heltal är bredden och höjden. Du kan leka med dessa två nummer för att ändra storlek
Steg 3: Skapa TrackBars för nyans, mättnad och värde
Nu kommer vi att skapa totalt 6 TrackBars för nyans, mättnad och värde. Var och en kommer att ha två dvs 1 för minimum och 1 för max. Vi kommer att använda createTrackbar -funktionen i openCV. Först kommer vi att se syntaxen för denna funktion.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Detta kan vara förvirrande men oroa dig inte, vi kommer att gå igenom varje steg. Tänk på att i openCV -värden för nyans är 179, mättnad är 255 och värdet är 255
1. Skapa TrackBar för färgton min:
cv2.createTrackbar ("Nyans min", "TrackBars", 0, 179, tom)
I denna Hue min är spårfältets namn, TrackBars är huvudfönstret, 0 är positionen som vår skjutreglage kommer att vara på och 179 är intervallet betyder att sildern kommer att röra sig från 0-179
2. Skapa TrackBar för nyans max:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, tom)
I denna Hue max är spårfältets namn, TrackBars är huvudfönstret, 179 är positionen som vår reglage kommer att vara på och 179 är det maximala intervallet vilket betyder att sildern kommer att flytta från 179-0
3. Upprepa på samma sätt stegen för lörmin, lör max, val min och val max som visas på bilden
Bilden med den vita bakgrunden är utdatabilden. Så här kommer dina spårfält att se ut
Steg 4: Hur man läser och ändrar storlek på bild
cv2.imread () låter dig läsa bilden. En viktig tanke du måste komma ihåg att platsen för din bild måste vara i samma mapp där programmet sparas. Vi lägger in medan loop eftersom den ska köras tills den läser bilden eller så kan vi säga tills villkoret är sant
img = cv2.imread ("ferrari.jpg")
- I detta har jag skapat ett variabelnamn "img" där jag lagrar bilden
- Inuti cv2.imread skriver du namnet på bilden med tillägget inuti dubbel citat
För att ändra storlek på en bild använder vi funktionen cv2.resize. Denna del är valfri, om du vill ändra storlek kan du använda den här funktionen
Inuti cv2.resize skriver du först variabelnamnet som bilden lagras i och sedan dess bredd och höjd
Steg 5: Läsa spårfältvärden för att tillämpa det på en bild
Ok, så nu ska vi läsa värden på spårfältet så att vi kan tillämpa det på vår bild. Vi får värdena med funktionen cv2.getTrackbarPos ().
Låt oss börja med den delen …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
I ovanstående uttalande skapar jag ett variabelnamn h_min där jag kommer att lagra värdet på Nyans min. Så inuti cv2.getTrackbarPos 1: a argumentet skulle vara "Hue min" eftersom jag vill ha värden på hue min (stavningen måste vara exakt densamma som den är createTrackbar -funktionen) och andra argumentet skulle vara namnet på det spårfält som det tillhör.
- Upprepa samma process för h_max och resten av funktionerna som visas i bilden ovan och skriv sedan ut alla värden med print ()
- Utmatningen visas i den andra bilden. Det skriver ut värdena för h_min, h_max, s_min, s_max, v_min, s_max
Steg 6: Visa bild och ställa in övre och nedre gräns
Nu har vi min- och maxvärdet för nyans, mättnad och värde. Vi kommer att använda det här värdet för att filtrera bort bilden så att vi kan få en bilds specifika färgutmatning.
Vi kommer att skapa en mask för detta med funktionen cv2.inRange. Och innan det kommer vi att sätta den övre och nedre gränsen för nyans, mättnad och värde
Så skapa ett variabelnamn "lägre" och använd numpy array -funktionen för att ställa in intervallet för min för alla tre enligt följande
lägre = np.array ([h_min, s_min, v_min])
Upprepa samma steg för övre
övre = np.array ([h_max, s_max, v_max])
Nu kommer vi att skapa en mask enligt följande
mask = cv2.inRange (ändra storlek, nedre, övre) Inuti cv2.inRang skulle det första argumentet vara variabeln där min sista bild lagras, 2: a argumentet kommer att vara nedre gräns och det tredje argumentet skulle vara övre gräns.
Nu ska vi visa huvudbilden och masken. För att visa använder vi funktionen cv2.imshow ()
cv2.imshow ("img", ändra storlek) Detta är för att visa huvudbilden. 1: a argumentet är namnet på fönstret du kan ge vilket namn du vill och andra argumentet är variabel där min huvudbild är lagrad som du vill visa.
Upprepa på samma sätt steg för mask
cv2.imshow ("Output", mask)
Steg 7: Nu det sista steget
I det sista steget kommer vi att extrahera färgen på bilen och displayen.
Jag har skapat ett variabelnamnresultat. Återigen kan du ge vilket namn du vill. Så vi kommer att använda funktionen cv2.bitwise_and () där vi tillsammans lägger till bilder och skapar en ny bild. Och varhelst pixlarna i båda bilderna finns kommer det att ta det som ja eller "1".
resultat = cv2.bitwise_and (ändra storlek, ändra storlek, mask = mask)
- I detta kommer det första argumentet att vara vår bild
- 2: a argumentet kommer också att vara vår ursprungliga bild men följt av mask applicerad som vi skapade tidigare
- Och slutligen bara visa resultatet med imshow -funktionen
Kopiera bara klistra in det här sista steget, det är bara en fördröjning och du kan lämna utmatningsfönstret genom att trycka på "a" på tangentbordet
Steg 8: Slututgångar
Rekommenderad:
QR -kodskanner med OpenCV i Python: 7 steg
QR-kodskanner med OpenCV i Python: I dagens värld ser vi att QR-kod och streckkod används nästan var som helst från produktförpackningar till onlinebetalningar och nu ser vi QR-koder även i restaurangen för att se menyn. tvivlar på att det är den stora tanken nu. Men har du någonsin wo
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
Enkel färgdetektering med OpenCV: 6 steg
Enkel färgdetektering med OpenCV: 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
Ansiktsigenkänning och identifiering - Arduino Face ID med OpenCV Python och Arduino .: 6 steg
Ansiktsigenkänning och identifiering | Arduino Face ID Med OpenCV Python och Arduino .: Ansiktsigenkänning AKA face ID är en av de viktigaste funktionerna på mobiltelefoner nuförtiden. Så jag hade en fråga " kan jag ha ett ansikts -id för mitt Arduino -projekt " och svaret är ja … Min resa började enligt följande: Steg 1: Tillgång till vi
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