Objektet spårning av färg med Python och openCV (1 / 1 steg)
Steg 1:
Bilden visar utdata från alla steg: från kalibrera, genom upptäckt, binarizing och kantning, perspektiv omvandling och jämföra med en referensavbildning.
Markör upptäckt och hålla fokus under förflyttning, görs av vanlig färg spårning. Det är 50 x snabbare än full tolkning rutin. "openCV Bounding Box" används för att få en mer exakt centroiden (konturer är ibland knepiga när är lite sluggy). En begränsningsram producerar också bredden på de marker, som används för att hålla fokus. Skillnaden visas i den andra bilden av en röd linje för konturer hittade och en grön linje som representerar begränsningsramen.
Rad rutin använder ett konstant värde för att multiplicera bredden av. Konstanten bestäms på en kända intervallet och eftersom alla markörer har samma storlek, bredd i bildpunkter kan användas för allt genom kamerabilden. Allt är inte behövs för att justera position och riktning, men kan användas till att hålla avstånd. (Så: mer på skoj).
Rutinen heads-up display visar också centrum koordinaterna. Också bara för kul (men vem vet)
Skriptet använder en timeout rutin för pytonormar ' time.sleep' är bara tillförlitlig med mycket små mellanrum och exakta tidsgränser är nödvändiga för att exakt svängar. Bilder är tog som global variabel (sparar en hel del att skriva och en liten bit av minnet)
Avläsningar när du flyttar är trimmad av timeout. Rutinen producerar mer än hundra uppläsningar i ett par sekunder, skapar en överbelastning av webbservern och Pi: s minne
Efter jämförande tecknet tvingar skriptet väntan på den senaste bilden att få nästa markör i minnet. Slutligen används rutinen fullständig identifiering för att jämföra skylten med referens bilder. Denna rutin upptäcker den vita inre rektangel, visas i den tredje bilden av en blå rektangel.
Stegen är rakt fram: hitta minsta rektangulär kontur, kanta det, justera perspektiv av skevhet, binarize det och jämföra det med referens bilder på disk.
Skriptet kan enkelt utökas med alla typer av rutiner, som en linje-följande rutin. Rutinen skatteflykt (akuta avbrott när ett hinder påträffas samtidigt på väg mot en markör) måste fyllas i.
Ett bra exempel på att använda objekt spåra av färg i koden finns på:
http://www.roborealm.com/tutorial/color_object_tracking_2/slide010.phpVery
bra instruktioner på objektet identifiering och spårning i Python och openCV färg finns på platsen för Adrian Rosebrock på: