Stap 1:
De afbeelding toont de output van alle stappen: van kalibreren, via detectie, binarizing en rand, perspectief transformatie en vergelijken met een referentiebeeld.
Marker detectie en het houden van focus tijdens het verplaatsen, wordt gedaan door gewone kleur bijhouden. Het is 50 x sneller dan de volledige interpretatie routine. 'openCV begrensd vak' wordt gebruikt om een nauwkeuriger centroid (contouren zijn soms lastige lichtomstandigheden wordt een beetje sluggy). Een selectiekader produceert ook de breedte van de markering, waarmee focus te houden. Het verschil moet worden weergegeven in de tweede foto een rode lijn voor de contouren gevonden en een groene lijn die aangeeft van het begrenzingsvak.
De bereik-routine maakt gebruik van een constante waarde om te vermenigvuldigen de breedte door. De constante wordt bepaald op een bekende bereik en aangezien alle markeertekens dezelfde grootte hebben, de breedte in pixels kan worden gebruikt voor het variërend via de camera beeld. Gaande is niet nodig om de positie en de richting, maar kan worden gebruikt om afstand te houden. (Dus: meer voor de lol).
De routine van de heads-up display toont ook de coördinaten van het centrum. Ook gewoon voor de leuk (maar wie weet)
Het script maakt gebruik van een routine van de time-out voor Pythons 'time.sleep ()' alleen betrouwbaar met zeer kleine intervallen is en nauwkeurige time-outs zijn nodig om de exacte bochten. Beelden zijn greep als globale variabele (bespaart veel typwerk en een klein beetje geheugen)
Lezingen tijdens het verplaatsen worden afgestemd door time-outs. De routine produceert meer dan honderd lezingen in een paar seconden, het maken van een overbelasting van de webserver en Pi's geheugen
Na het vergelijken van het teken dwingt het script een wachttijd voor het laatste beeld te krijgen van de volgende markering in het geheugen. Tot slot wordt de volledige detectie routine gebruikt voor het vergelijken van het teken met de referentie-beelden. Deze routine detecteert de witte binnenste rechthoek, weergegeven in de derde afbeelding door een blauwe rechthoek.
De stappen zijn rechttoe-rechtaan: vinden van de kleinste rechthoekige contour, rand van het aanpassen van perspectief door kromtrekken, binarize het en vergelijken met de beelden van de verwijzing op de schijf.
Het script kan eenvoudig worden uitgebreid met alle soorten routines, zoals een lijn-volgende routine. De ontduiking routine (emergency break wanneer een obstakel wordt aangetroffen terwijl het bewegen richting een marker) nog moet worden ingevuld.
Een goed voorbeeld van het gebruik van object tracking door kleur in code vindt u op:
http://www.RoboRealm.com/tutorial/color_object_tracking_2/slide010.phpVery
goede instructies op object detectie en kleur bijhouden in Python en openCV kunnen worden gevonden op de site van Adrian Rosebrock op: