Hi everyone,
I m beginner in processing, so that why I m asking some help,
Actually I m working on a project on light color detection, I mean what I would like to do
is through the webcam in a dark room detect colors and make simple interaction with those colors.
So more precisely, it would be more like an installation in a dark room where is gonna be 4 lights, a red one , a blue one ,
a green one and just a normal one yellow, white fluorescent.
So when i switch on one of them, the cam detect the color and make appear a picture under the lamp, and when i
switch off the lamp it disappear.
So for that I was thinking of using the gsvideo library with the brightness tracking example, using the same concept
but I dunno how to modify it to have the result expected.
so if you could help me out it would be great
So here is the code I d like to modify
/**
* Brightness Tracking
* by Golan Levin.
*
* GSVideo version by Andres Colubri.
*
* Tracks the brightest pixel in a live video signal.
*/
import codeanticode.gsvideo.*;
GSCapture 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 GSCapture(this, width, height);
video.start();
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);
}
}
1