Hoe bijhouden van uw Robot met OpenCV (14 / 28 stap)

Stap 14: OpenCV functie begint


 #Incrementing frame index iFrame = iFrame +1#Read the frames _,frame = cap.read() #Smooth it frame = cv2.blur(frame,(3,3)) #Convert to hsv and find range of colors hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) thresh = cv2.inRange(hsv,np.array((0, 80, 80)), np.array((20, 255, 255))) thresh2 = thresh.copy() #Find contours in the threshold image contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) #Finding contour with maximum area and store it as best_cnt max_area =0for cnt in contours: area = cv2.contourArea(cnt) if area > max_area: max_area = area best_cnt = cnt #Finding centroids of best_cnt and draw a circle there M = cv2.moments(best_cnt) cx,cy =int(M['m10']/M['m00']), int(M['m01']/M['m00']) cv2.circle(frame,(cx,cy),10,255,-1) #After 150 frames, it compares the bot's X and X average,#if they are the same + or - 5, it assumes the bot is being tracked.if iFrame >=150: if cxAvg < (cx +5) and cxAvg > (cx -5): xOld == cxAvg stringXOk ="X Lock"if cyAvg < (cy +5) and cyAvg > (cy -5): yOld == cyAvg stringYOk ="Y Lock" 
 98 

42: hier beginnen we deze functie die het meeste werk doet, OpenCV():.  Het is een van de functies die zal worden schroefdraad Lines 345-347.

44: we openstellen van de webcam en geef het de bijnaam GLB.  Als ik mij goed herinner de "0" in het haakje verwijst naar welke camera voorop op uw USB-bus, dus als u meer dan één camera hebt, u opgeven kunt door het veranderen van dit nummer, bijvoorbeeld cap = cv2. VideoCapture(3).  Zoals u ziet, dat we noemden het OpenCV module cv2, zodat we de OpenCV-module gebruiken om de toegang van de webcam.

46-52: alleen het maken van de variabelen gedeclareerd wij werkzaamheden binnen deze functie.  Dit zou niet nodig zijn, maar hey, ik niet de handleiding te lezen hele Python.

55:  Dit is gewoon een tekenreeks vlag die wordt gespiegeld om te vertellen van de PC voor het genereren van een nieuwe doelstelling voor de robot.  Opmerking, we in eerste instantie zet deze op "Ja" wat betekent dat de eerste keer we door middel van deze functie een streefcijfer lopen moet worden gegenereerd.

58:  Dit is een geheelvariabele te tellen hoeveel punten de robot heeft "aten".

OK, voordat ik begin met de volgende bit moet ik nemen een minuut en uitleggen hoe wij benaderen daadwerkelijk krijgen de coördinaten van onze robot.  Zoals u weet, doet OpenCV het harde werk voor ons, ons geeft de X- en Y-coördinaat van de grootste rode vlek op het scherm.  Echter zijn de coördinaten die het geeft ons het centrum van de massa.  Nu, dit is allemaal gewoon een logische gok omdat ik niet de hele OpenCV handleiding te lezen, maar ik denk dat de X- of Y-coördinaat die naar het midden van deze massa verwijst heet het zwaartepunt.

Dit kan lijkt eenvoudig.  Dat is omdat het, ik ben niet zeker waarom niet gewoon we het de verdomde center of iets noemen.  Eh, Nou ja.  Echter zal het belangrijker wanneer wij botsingdetectie tussen haar doelstelling en de robot.

61-62: alles wat om te zeggen, de 'c' in cyAvg en cxAvg staat voor zwaartepunt.  Dus, dit zijn variabelen die de werking zal houden voor de X- en Y-coördinaten van de rode vlek centroid gemiddelde.

65-66: Deze zijn rug-up variabelen van de cxAvg en cyAvg en belangrijke rond lijn 122-127 worden wanneer we proberen om te beslissen of de kleur die wij zijn bijhouden eigenlijk de robot of andere rommel met genoeg rood in het te gek OpenCV is.

69:  Dit wist gewoon de tekenreeksvariabele met gegevens die kwam van de robot, zoals de robot de rubriek, voordat een ander iFrame begint.

Gerelateerde Artikelen

Maken van een Robot met Camera kleurherkenning

Maken van een Robot met Camera kleurherkenning

Hallo! Dit is voor groep 18 jaar of ouder.Dit instructable begeleidt u stapsgewijs door het bouwen van een robot met kleurherkenning met behulp van een camera en een servo. De robot die zal ik bouwen heeft ook servo's voor wapens, maar ze zijn niet n
Stem van de Robot met behulp van vrije software

Stem van de Robot met behulp van vrije software

hebben u ooit gewild uw eigen persoonlijke robot stem om u te vertellen heb je mail, of u te mogen verwelkomen op uw computer wanneer u inlogt?Zoek niet meer! Voor met een website, een gratis audio bewerkingsprogramma, en een paar eenvoudige stappen
Controle van uw Robot met behulp van de mobiele telefoon

Controle van uw Robot met behulp van de mobiele telefoon

DEZE hele TUTORIAL IS ook beschikbaar op mijn WEBSITEHallo zal wereld in deze post ik u tonen hoe om te controleren van de robot met behulp van de mobiele telefoon. Besturen van een robot met behulp van de mobiele telefoon is niet zo ingewikkeld als
Hoe maak je kleine robots met nRover bestuur

Hoe maak je kleine robots met nRover bestuur

De nRover, is een kleine bord gemaakt om te bouwen van kleine robots zoals UGV (onbemande ground voertuigen), lijn volgeling of Domotica, het kan worden gecontroleerd door wifi, Bluetooth en radio-controle. Het belangrijkste doel is de ontwikkeling v
Doolhof van Oplosser Robot, met behulp van kunstmatige intelligentie met Arduino

Doolhof van Oplosser Robot, met behulp van kunstmatige intelligentie met Arduino

(Als je dit Instructable, vergeet dan niet te stemmen (boven: rechts hoek vlag). Rex, de Robot concurreert op ROBOTICA en sensoren wedstrijden. Heel hartelijk bedankt! ;-)Dit Instructable werd ontwikkeld na mijn laatste project: lijn volgeling Robot
Het bijhouden van een lichtbron met een Actuator

Het bijhouden van een lichtbron met een Actuator

.. .of misschien het moet worden genoemd "Met behulp van een oude zonnecel van een volledig gecorrodeerde tuin licht als een lichtsensor". :)In dit instructable, ik bouwen op mijn vorige en Toon u hoe kun je een actuator vinden de grootste licht
Besturen van een Robot met een Wii-afstandsbediening

Besturen van een Robot met een Wii-afstandsbediening

Dit is een leuke kleine project die gebruikmaakt van een Raspberry Pi, een Robot Finch en een Wii-afstandsbediening (AKA Wiimote), om aan te tonen enkele van de dingen die je met een raspberry pi en/of een Wii doen kunt remote. Het maakt gebruik van
Delen en bijhouden van uw boeken met behulp van BookCrossing

Delen en bijhouden van uw boeken met behulp van BookCrossing

BookCrossing is een website die u toelaat om unieke nummers toewijzen aan uw boeken, en gebruik van deze nummers om uw boeken als ze over de hele wereld reizen. Dit wordt natuurlijk een stuk spannender als uw boeken daadwerkelijk krijgen om te vertre
Controle van uw Robot met behulp van een Wii Nunchuck (en een Arduino)

Controle van uw Robot met behulp van een Wii Nunchuck (en een Arduino)

na het dragen van mezelf spelen van Wii Boksen, ik kreeg aan het denken zou het niet geweldig als ik zou kunnen dit gebruiken om te controleren mijn robot, (op zoek naar mijn linkerhand).Op zoek rond het internet vond ik een schare van mensen die soo
Afstand houden van de robot met de Smart Controller Servo

Afstand houden van de robot met de Smart Controller Servo

Deze demo ik ga u tonen hoe gebruik je de Smart Controller Servo te maken van een robot zijn afstand houden.Het maakt gebruik van twee continue rotatie servomotoren en een afstandssensor. De slimme Servo-Controller wordt gebruikt voor het maken van e
Besturen van een Robot met een RC zender & ontvanger

Besturen van een Robot met een RC zender & ontvanger

In dit instructable zal lopen we door middel van het instellen van een traditionele RC hobby zender en ontvanger met een RoboClaw motorcontroller te rijden een robot rond (zoals De ServoCity.com Runt Rovers).Stap 1: Draad het omhoog.Motoren:Hebt u me
Basis Set van en de controle van een Robot met vaste as

Basis Set van en de controle van een Robot met vaste as

Dit is hoe we waren in staat om een robot met een fix as bewegen rond een vierkant met 2 x 2 en toont ook hoe we het instellen.Stap 1: De Items die u nodig hebtItemsEen 9v batterijEen 9v batterij connector0.0 Philips hoofd schroevendraaier4 DC-motore
Versterken van uw robot met sugru

Versterken van uw robot met sugru

In onze hackerspace bouwen www.MADspace.nl we hebben een robot die een prijs heeft gewonnen (Zie url: http://hackaday.io/project/740-mars). Maar helaas het materiaal is zwak en kan breken tijdens het rijden de robot te hard tegen de muur. Met Sugru k
Het bouwen van een Robot met behulp van MSP430 Launchpad

Het bouwen van een Robot met behulp van MSP430 Launchpad

In dit Instructable gaan we aan het bouwen van een kleine robot met behulp van MSP430 Launchpad van TI. De robot zal gebruik maken van twee gericht gelijkstroommotoren en differentiële aandrijfsysteem zal tewerkstellen.De intelligentie is voorzien va