//Dot tracks color, click mouse to assign color to track import processing.video.*; Capture video; color trackColor;//imports video void setup() { size(640, 480);//Size the video frameRate(30); colorMode(RGB,255,255,255,100); video = new Capture(this, 640, 480, 12); trackColor = color(255); noFill(); smooth(); strokeWeight(4.0); stroke(0); } void captureEvent(Capture camera)//reads webcam { camera.read(); } void draw() { loadPixels(); image(video,0,0); float closestDiff = 500.0f; int closestX = 0; int closestY = 0; for ( int x = 0; x < video.width; x++) { for ( int y = 0; y < video.height; y++) { int loc = x + y*video.width; color currentColor = video.pixels[loc]; float r1 = red(currentColor); float g1 = green(currentColor); float b1 = blue(currentColor); float r2 = red(trackColor); float g2 = green(trackColor); float b2 = blue(trackColor); float d = dist(r1,g1,b1,r2,g2,b2); if (d < closestDiff) { closestDiff = d; closestX = x; closestY = y; } } } fill(255,0,0,255); ellipse(closestX,closestY,16,16); line(closestX,closestY,1,1); } void mousePressed() { int loc = mouseX + mouseY*video.width; trackColor = video.pixels[loc]; }