Qué puede hacerse Fundamentos Primeros ejemplos Primer Juego
Mis cosas: CityFireflies
Mis cosas: Sonic Skate
De otros: El primero. Videoplace Myron Krueger, 1975
Messa di Voice gHc Golan Levin and Zach Lieberman with Jaap Blonk and Joan La Barbara
levelHead Julian Oliver
En el navegador: justareflektor.com Vincent Morisset and Aaron Koblin
HAND FROM ABOVE rks/hand-from-above-openframeworks/ Vincent Morisset and Aaron Koblin
. Nuestro problema: Una cámara nos da un array de pixels, nada de información de lo que hay en ellos ¿Como identificar qué se está viendo?
Técnicas Básicas Filtros contrasteBrilloSaturación Un uso habitual es preparar la imagen para posteriores procesos.
.
Background Sustraction Se utiliza para detectar variaciones en una imagen respecto a otra de referencia. Simplemente se restan los valores de alguna característica de cada pixel entre una imagen y otra Fuente: n.pdf
Blobs Regiones con una característica constante en una imagen environments/
Tracking de Blobs Seguimiento del movimiento de las regiones a lo largo de una secuencia de imagen: Una mano que se mueve, una persona que anda, un coche que pasa environments/
Abriendo la cámara import processing.video.*; void setup() { video = new Capture(this, width, height); video.start(); void draw(){ if (cam.available() == true) { cam.read(); } image(cam, 0, 0); Código de ejemplo libraries -> video-> capture -> GettingStartedCapture
Leyendo pixels de la imagen Código de ejemplo libraries -> video-> capture -> frameDifferencing (sobre la extraccion de color): BG sustraction color pink = color(255, 102, 204); loadPixels(); for (int i = 0; i < (width*height/2)-width/2; i++) { pixels[i] = pink; } updatePixels(); Pixels de la pantalla: video.loadPixels(); // Make its pixels[] array available Pixels de la pantalla:
Un filtro loadPixels(); for (int i = 0; i < numPixels; i++) { pixelBrightness = brightness(video.pixels[i]); if (pixelBrightness > threshold) { // If the pixel is brighter than the pixels[i] = white; // threshold value, make it white } else { // Otherwise, pixels[i] = black; // make it black } updatePixels(); Código de ejemplo libraries -> video-> capture ->Brightness threshold
Siguiendo el pixel mas brillante Código de ejemplo libraries -> video-> capture ->Brightness Tracking 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; } EN ESTE TIPO DE APLICACIONES ES MUY IMPORTANTE CONFIGURAR BIEN EL ENTORNO
Un primer inicio de “juego”
Instalando opencv Sketch->import library->add library… Opencv for processing by Greg Borenstein