Stap 5: Code uitleg
MATLAB
INITIALISATIE BLOK
-in dit blok code initialiseren we de webcam, de mededeling van de seriële poort en de video zelf
-vid = videoinput('winvideo',1); Als u twee gebruikt zijn meer webcam gelijktijdig in uw computer op een moment, dan je schip aandacht te besteden aan het nummer (1) in die lijn. wijzigen van dit nummer hebt u geen problemen bij het verkrijgen van de video-feed van uw webcam (1,2,3...)
-s = serial('COM68','BaudRate',9600); wijziging van passende COM-nummer van je arduino uno board (COM68)
Aangezien we gaan om te communiceren met de arduino via seriële... is dit verplicht
BEGIN
-Aangezien het project is bedoeld om dingen te verklaren over beeldverwerking. Ik bewaarde terwijl (ik < = 300) die stopt het proces na 300 iteratie. maar als u wilt uit te breiden voor lange go met while(1==1)
-gegevens = getsnapshot(vid); deze regel wordt een momentopname van de video-feed en slaat deze op in een variabele met de naam datum voor het doen van wat wiskunde op het (ya... er is een heleboel wiskunde komen... klaar!!!)
-diff_im = imsubtract(data(:,:,1), rgb2gray(data)); Dit vindt uit het gedeelte van de rode kleur van de afbeelding en het aftrekken van de rest van het beeld te vormen van een masker
-diff_im = im2bw(diff_im,0.18); dit de normale afbeelding converteren naar binaire (0,1) afbeelding
-bw = bwlabel (diff_im, 8);
stats = regionprops (bw, 'all');
het vormt een grens rond het masker en de label met identificatie nummer en het verzamelen van informatie over het
INFO VERZAMELEN BLOK
-voor object = 1:length(stats)
obj_found = 1; BB = stats(object). BoundingBox; BC = stats(object). Zwaartepunt; AR=stats(object). Gebied; Rectangle('Position',BB,'EdgeColor','r','LineWidth',2) plot(bc(1),bc(2), '-m +')
verzamelt verschillende gegevens adout de rode object zoals (BOUNDINGBOX, CENTER, gebied)
AFSTAND en het vinden van de kant
_ dit blok zich bezighoudt met de wiskunde van het vinden van de afstand en de kant of de richting van het object die het op zoek is... math .....................
Ga grondig zodra dit blok bent tweemaal om te begrijpen wat het doet
in principe vindt ir het gebied voor het berekenen van de afstand en het centrum om te vinden van de rechter en linker kant