Hur till spår din Robot med OpenCV (16 / 28 steg)
Steg 16: OpenCV börjar
87 | #Incrementing ram index #Smooth det #Convert till hsv och hitta olika färger thresh2 = thresh.copy() #Find konturer i tröskeln bilden #Finding kontur med maximal areal och lagrar det som best_cnt #Finding centroids best_cnt och rita en cirkel där #After 150 ramar, jämför bot X och X genomsnitt, #if är de samma + eller - 5, det förutsätter bot är att tracked.if iFrame > = 150: |
88: Detta ökar våra bildräkneverket.
91: Vi läsa en enskild bildruta från webkameran vi förklarade, mössa, på linje 44.
OPENCV! Tyvärr, älskar jag bara det så mycket.
Så, nu vet du jag inte har läst OpenCV manualen. Och inte tala om för mig, "vad! Gå RTFM!" Du går RTFM! Jag har en fru, barn och ett jobb som jag älskar. Jag kommer bara att mixtra med skit och få det att fungera. Men denna attityd kommer att börja Visa som vi går igenom OpenCV samtal, eftersom jag inte vet deras inre arbetande. I stället kommer jag att erbjuda min bästa gissning, och som alltid, om någon vill rätta mig eller erbjuda bättre förklaring, jag ska lägga upp och ge kredit.
94: Detta suddar bilden vi fick. Kan du säga, "men jag trodde högre upplösning var bättre?" Det är. Men ojämna kanter och färgbrus är inte. En enkel form är mycket lättare för matematik av OpenCV att linda runt då komplex. Därför vi sudda ut bilden lite, ger oss mjukare kanter att hantera.
Också, oskärpa melds färger, så om det finns 2 blå pixlar och 1 röd pixel i en grupp, då det blivit 3 blå-lila pixlar. Detta har tjusig förmån för fortkörning upp bildbehandling mycket. Hur mycket? Jag vet inte jag inte RTFM.
97-100: Vår bild konverteras till ett histogram här. Att ha bilden i ett histogram format tillåter oss att använda jämförande uttalanden med den. Vad använder vi den för är att bli av med alla färger utom den som vi försöker hitta. Detta ger oss en svartvit bild, den vita är bara den färg vi är ute efter för att hitta. Linje 98 är där din färg definieras (det är de två "np.array"s). I nästa steg ska jag gå igenom hur du väljer din robot exakt färg.
103: Finner det vita området konturer i slutbilden.
107-112: OpenCV räknar sedan hur många pixlar är i varje kontur påträffas i webcam bilden. Det förutsätter som har det mest vita området (aka, "massa") är våra objekt.
114-117: När vi bestämt vilket objekt som vi vill spåra, nu måste vi komma med centroiden koordinaterna. Det är vad linjer 115-116 gör. Jag har inte gjort forskningen på matematik det, men jag tror det är i genomsnitt de stunder av polygonen och kallar genomsnittligt antingen centroiden X eller Y, beroende på beräkningen. Men känn dig fri att korrigera eller förklara bättre.
121-127: Här låsa vi på den massa som vi anser är roboten. Det börjar med att samla in en 150 prover innan det kommer staten spårar den största massan. Men efter det börjar spåra största massan, då vi försöka bo låsta på den. Detta är linje 122-127. I grund och botten tillåter vi samlas för att flytta tillräckligt för att anses vara en rörelse av robot, men inte så mycket att buller (som en herrelös hand i webcam bilden) kommer att orsaka spårning att stänga av roboten.