25

Qué puede hacerse Fundamentos Primeros ejemplos Primer Juego

Embed Size (px)

Citation preview

Page 1: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego
Page 2: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Qué puede hacerse Fundamentos Primeros ejemplos Primer Juego

Page 3: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego
Page 4: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Mis cosas: CityFirefliesMis cosas: CityFireflies

http://cityfireflies.com/ https://vimeo.com/25071870

Page 5: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Mis cosas: Sonic SkateMis cosas: Sonic Skate

Page 6: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

De otros: El primero. De otros: El primero. VideoplaceVideoplace

http://youtu.be/dmmxVA5xhuo?t=1m30s Myron Krueger, 1975

Page 7: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Messa di VoiceMessa di Voice

http://www.tmema.org/messa/messa.html

https://www.youtube.com/watch?v=STRMcmj-gHc

Golan Levin and Zach Lieberman

with Jaap Blonk and Joan La Barbara

Page 8: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

levelHeadlevelHead

https://www.youtube.com/watch?v=UJYKSFANuaQ Julian Oliver

Page 9: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

En el navegador: En el navegador: justareflektor.com justareflektor.com

https://www.justareflektor.comVincent Morisset and

Aaron Koblin

Page 10: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

HAND FROM ABOVEHAND FROM ABOVE

http://www.creativeapplications.net/openframeworks/hand-from-above-openframeworks/ Vincent Morisset and

Aaron Koblin

Page 11: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego
Page 12: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

.

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?

Page 13: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Técnicas BásicasTécnicas Básicas

Un uso habitual es preparar la imagen para posteriores procesos.

Page 14: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

.

Page 15: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Background SustractionBackground Sustraction

Se utiliza para detectar variaciones en una imagen respecto a otra de referencia. Simplemente se restan los valores de alguna caracteristica de cada pixel entre una imagen y otra

Fuente: http://se.inf.ethz.ch/courses/2013b_fall/rpl/lectures/10_RobotPerception.pdf

Page 16: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

BlobsBlobs

Regiones con una caracteristica constante en una imagen

http://golancourses.net/2012spring/03/29/interact-reactive-environments/

Page 17: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Tracking de BlobsTracking 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

http://golancourses.net/2012spring/03/29/interact-reactive-environments/

Page 18: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego
Page 19: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Abriendo la cámaraAbriendo 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 ejemplolibraries -> video-> capture -> GettingStartedCapture

Page 20: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Leyendo pixels de la Leyendo pixels de la imagenimagen

Código de ejemplolibraries -> video-> capture -> frameDifferencing(sobre la extraccion de color): http://processing.org/reference/red_.htmlBG 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:

Page 21: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Un filtroUn 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

Page 22: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Siguiendo el pixel mas Siguiendo el pixel mas brillantebrillante

Código de ejemplolibraries -> 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

Page 23: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Un primer inicio de Un primer inicio de “juego”“juego”

Page 24: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego

Instalando opencvInstalando opencvSketch->import library->add library…

Opencv for processing by Greg Borenstein

Page 25: Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego