/////////////////////////////////////////////////////////////////////////// // public RobotLocator(ParticleFinder pi) { _particles = pi.Particles; imgheight = pi.imgheight; imgwidth = pi.imgwidth; findTargets(); if (_particles.Count == 3) { targetleft = _particles[0]; targetmid = _particles[1]; targetright = _particles[2]; } else if (_particles.Count == 2) { Particle p1 = _particles[0]; Particle p2 = _particles[1]; int center = imgwidth / 2; if (p1.area > p2.area) { targetleft = p1; targetmid = p2; } else { targetmid = p1; targetright = p2; } } else if (_particles.Count == 1) { targetmid = _particles[0]; } }
public void Start() { _settings = null; _particlefinder = new ParticleFinder(Settings.Default.Luminance, false, 60 * 25); _camera = new CameraMJPG(Settings.Default.CameraURL, Settings.Default.FrameRate, Settings.Default.Compression); // _camera = new Camera(Settings.Default.CameraURL, Settings.Default.FrameRate); _trim = Settings.Default.Trim; _camera.Start(); }
void findByAspectRatio(ParticleFinder pi) { // look for mid goal, find the biggest particle with the right aspect ratio foreach (Particle p in pi.Particles) { if ((p.aspectratio > midaspectmin) && (p.aspectratio < midaspectmax)) { if ((targetmid == null) || (p.area > targetmid.area)) { targetmid = p; } } } // look for side goals if (targetmid != null) { foreach (Particle p in pi.Particles) { if ((p.aspectratio > sideaspectmin) && (p.aspectratio < sideaspectmax)) { // we've got a side particle if (targetmid.right < p.left) { if ((targetright == null) || (p.area > targetright.area)) { targetright = p; // take the biggest one } } else if (targetmid.left > p.right) { if ((targetleft == null) || (p.area > targetleft.area)) { targetleft = p; // take the biggest one } } } } } else { // if we couldn't find anything above, look for the largest particle foreach (Particle p in pi.Particles) { if ((targetmid == null) || (p.area > targetmid.area)) { targetmid = p; } } } }
/////////////////////////////////////////////////////////////////////////// // public RobotLocator(ParticleFinder pi) { _particles = pi.Particles; imgheight = pi.imgheight; imgwidth = pi.imgwidth; findTargets(); if (_particles.Count == 3) { targetleft = _particles[0]; targetmid = _particles[1]; targetright = _particles[2]; } else if (_particles.Count == 2) { Particle p1 = _particles[0]; Particle p2 = _particles[1]; int center = imgwidth / 2; if (p1.area > p2.area) { targetleft = p1; targetmid = p2; } else { targetmid = p1; targetright = p2; } } else if (_particles.Count == 1) { targetmid = _particles[0]; } }
public void Start() { _settings = null; _particlefinder = new ParticleFinder(Settings.Default.Luminance, false, 60 * 25); _camera = new CameraMJPG(Settings.Default.CameraURL, Settings.Default.FrameRate, Settings.Default.Compression); // _camera = new Camera(Settings.Default.CameraURL, Settings.Default.FrameRate); _trim = Settings.Default.Trim; _camera.Start(); }
void findByAspectRatio(ParticleFinder pi) { // look for mid goal, find the biggest particle with the right aspect ratio foreach (Particle p in pi.Particles) { if ((p.aspectratio > midaspectmin) && (p.aspectratio < midaspectmax)) { if ((targetmid == null) || (p.area > targetmid.area)) targetmid = p; } } // look for side goals if (targetmid != null) { foreach (Particle p in pi.Particles) { if ((p.aspectratio > sideaspectmin) && (p.aspectratio < sideaspectmax)) { // we've got a side particle if (targetmid.right < p.left) { if ((targetright == null) || (p.area > targetright.area)) targetright = p; // take the biggest one } else if (targetmid.left > p.right) { if ((targetleft == null) || (p.area > targetleft.area)) targetleft = p; // take the biggest one } } } } else { // if we couldn't find anything above, look for the largest particle foreach (Particle p in pi.Particles) { if ((targetmid == null) || (p.area > targetmid.area)) { targetmid = p; } } } }