topical media & game development

talk show tell print

graphic-processing-site-examples-Libraries-Video--Capture--BrightnessTracking-BrightnessTracking.pde / pde



  
Brightness Tracking by Golan Levin. Tracks the brightest pixel in a live video signal.

  
  
  import processing.video.*;
  
  Capture video;
  
  void setup() {
    size(640, 480); // Change size to 320 x 240 if too slow at 640 x 480
    // Uses the default video input, see the reference if this causes an error
    video = new Capture(this, width, height, 30);
    noStroke();
    smooth();
  }
  
  void draw() {
    if (video.available()) {
      video.read();
      image(video, 0, 0, width, height); // Draw the webcam video onto the screen
      int brightestX = 0; // X-coordinate of the brightest video pixel
      int brightestY = 0; // Y-coordinate of the brightest video pixel
      float brightestValue = 0; // Brightness of the brightest video pixel
      // Search for the brightest pixel: For each row of pixels in the video image and
      // for each pixel in the yth row, compute each pixel's index in the video
      video.loadPixels();
      int index = 0;
      for (int y = 0; y < video.height; y++) {
        for (int x = 0; x < video.width; x++) {
          // Get the color stored in the pixel
          int pixelValue = video.pixels[index];
          // Determine the brightness of the pixel
          float pixelBrightness = brightness(pixelValue);
          // If that value is brighter than any previous, then store the
          // brightness of that pixel, as well as its (x,y) location
          if (pixelBrightness > brightestValue) {
            brightestValue = pixelBrightness;
            brightestY = y;
            brightestX = x;
          }
          index++;
        }
      }
      // Draw a large, yellow circle at the brightest pixel
      fill(255, 204, 0, 128);
      ellipse(brightestX, brightestY, 200, 200);
    }
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.