Presentación paredes 3°c

19
Mariana Paredes Maestría en Tecnología y Estética de las Artes Electrónicas Universidad Nacional de Tres de Febrero Agosto 2014 | Argentina

description

Resumen del proyecto de trabajo correspondiente al 3° Semestre de la Maestría en Estética y Tecnología de las Artes Electrónicas. Más info: http://paredesmariana.wordpress.com/610-2/

Transcript of Presentación paredes 3°c

Page 1: Presentación paredes 3°c

Mariana Paredes

Maestría en Tecnología y Estética

de las Artes Electrónicas

Universidad Nacional de Tres de Febrero

Agosto 2014 | Argentina

Page 2: Presentación paredes 3°c

“Los hombres de la Edad del Reno, en particular en Lascaux, indudablemente

utilizaron un procedimiento empleado por los australianos de nuestros días,

que consiste en introducir un polvo coloreado en un tubo hueco y soplar. Así es

como se procedió para obtener la matriz de las manos que, para el conjunto de

las grutas, son bastante numerosos: se aplicaba la mano sobre la pared y se

soplaba alrededor. En Lascaux, el uso de este procedimiento era generalizado

para los colores lisos”.

Georges BATAILLE

www.paredesmariana.wordpress.com/610-2

Page 3: Presentación paredes 3°c

En la antigüedad, el

PALIMPSESTO consistía en una

tablilla donde se podía borrar

lo escrito para volver a escribir,

conservando las huellas de las

múltiples escrituras. Esta su-

perficie, portadora del tiempo

condensado en sus sucesivos

usos, será utilizada aquí como

metáfora del territorio del in-

teractor, en procura de un pro-

ceso reflexivo sobre las etapas

y tiempos de la creación visual.

Palimpsesto de ArquímedesEste palimpsesto consiste en siete tratados escritos en griego original, entre ellos: Sobre cuer-pos flotantes, El Método y el Stomachion. La transcripción fue hecha posiblemente en el siglo X en Constantinopla, hoy Estambul, y en el Siglo XIII fue raspado para escribir un libro de oracio-nes sobre el papiro.Además, el palimpsesto también contiene discursos del político ateniense Hipérides, del siglo IV a. C., un comentario de Alejandro de Afrodisias sobre la obra de Aristóteles y algunas otras obras.En particular, es de especial importancia la obra sobre El método de los teoremas mecánicos de Arquímedes, puesto que se trata de la única copia conocida existente.Esta práctica de economía, muy antigua y muy frecuente en el siglo VII por las dificultades que ofrecía el comercio del papiro egipcio, se repitió en los cinco siglos siguientes por la escasez del pergamino, en vista de la gran demanda de comercio y la falta de papel, artículo que apenas se conocía. Tras realizar un tratamiento de las páginas del palimpsesto, el texto original de Arquí-medes puede ahora leerse con claridad (ver foto derecha).

Referencia: http://es.wikipedia.org/wiki/Palimpsesto, de fecha 5/08/2013

PALIMPSESTO

Page 4: Presentación paredes 3°c

El presente abordaje tiene su antecedente en el desa-

rrollo de la Tesina TRANSPOSICIONES1, en la cual se

introduce la noción de PALIMPSESTO entendido como

superficie de tiempo condensado, utilizado como me-

táfora del territorio del artista, sometido a las acciones

de designación / demarcación / apropiación. Lugar de

las prácticas que se superponen y yuxtaponen a modo

de estratos, haciendo presente el paso del tiempo,

concentrado en un solo lugar.

El trabajo realizado en el marco de los Proyectos IUNA

34/0101, 34/0173 y 34/02572 sobre Metodologías de In-

vestigación en las artes visuales, constituyen un im-

portante antecedente, sobre el cual se desarrolló la

obra PALIMPSESTOS I, consistente en el diseño de un

sitio web, entendido como metáfora de superficie crea-

tiva para la reescritura visual que da protagonismo al

tiempo como factor central del relato.

1 PAREDES, Mariana. Transposiciones. Tesis de Grado, DAVPP-IUNA, CABA, 2011.2 Proyecto de Investigación Categoría A. IUNA 34/0101: 2009-2010 / 34/0173: 2011-2012 y 34/0257: 2013-2014.

ANTECEDENTES Y MOTIVACION DEL PROYECTO

vista del Sitio web PALIMPSESTOShttp://www.palimpsesto.paredesmariana.net/

Page 5: Presentación paredes 3°c

El artista argentino presenta en el año 2010 la obra LA

CUEVA DEL FUTURO, en la cual traza un puente entre

las tecnologías ancestrales -cuyos registros han tenido

la capacidad de preservarse hasta nuestros días- y las

tecnologías contemporáneas que presentan el proble-

ma de su obsolescencia.

Se trata de una obra interactiva por la cual el usuario

coloca su mano en una captura fotográfica, la cual pue-

de intervenir cambiando el formato, color y apariencia.

A este registro visual se suma la posibilidad de dejar un

mensaje para el futuro que, a diferencia de una cápsula

del tiempo, puede visitarse de forma permanente. Con-

venios con Universidades permitirán la permanencia de

la obra, a través del cambio de soporte conforme el de-

sarrollo tecnológico.

Queda claro que el objetivo en este caso, no se orienta

a la obtención de un producto visual transpositivo que

dialogue con su entorno, sino que procura una reflexión

sobre la obsolescencia programada y su influencia en

nuestra cultura.

OTROS ANTECEDENTES:Joaquín Fargas

“Como en el pasado las personas nos legaron las impresiones

de sus manos en piedra, registraremos las de ahora en medios

digitales como legado de esta época.

La Cueva del futuro es una obra generada en forma dinámica por

cada persona que quiera participar y generar una obra interactiva

y colaborativa”.

En: www.youtu.be/FEajw1hN7uU

Page 6: Presentación paredes 3°c

Se propone la realización de una pieza interactiva y colabo-

rativa basada en una pantalla táctil, a partir de la cual el in-

teractor podrá producir sus propias huellas: imágenes de

manos que construyen transposiciones sobre un palimpses-

to; una cartografía en tiempo real que traza un puente con el

pasado y evoca un estatuto atemporal sobre nuestra necesi-

dad de permanencia.

DESARROLLO: Se utilizará un sistema de sensado que per-

mita la captura en movimiento de la mano de cada partici-

pante. Ésta servirá de molde para producir una simulación

de dicha mano, obteniendo como resultado visual la emula-

ción de técnicas de representación ancestrales.

OPCION INTERFAZ: se desarrollará un prototipo que utilice

el sensado por captura de video. A través de una mesa de

luz el interactor colocará su mano y ésta se verá reflejada en

otro soporte, intervenida por agentes.

OPCION REALIDAD AUMENTADA: Se propone un prototipo

de sensado infrarrojo que permita, en la misma superficie,

realizar la captura de movimiento y la proyección de la ima-

gen resultante.

MARCO CONCEPTUAL

Los orígenes de las operaciones transpositivas en las artes visuales

se remontan al inicio histórico de las prácticas representacionales. En

Lascaux, como en las llamadas “cuevas de las manos” de Santa Cruz,

asistimos a los vestigios de las primeras graficaciones realizadas por el

principio de la huella, obtenida en este caso por sustracción: una mano

que estuvo allí y que, al retirarse, deja depositada una superficie colo-

reada que se extiende a partir de sus límites. Resultado en negativo que

provoca un doble distanciamiento respecto de su referente: la ausencia

de la mano que se retiró y la presencia representada de esa ausencia

(aparición a través del hueco); provocando la proyección que surge de la

propia presencia, como extensión del cuerpo: contigüidad exacerbada.

La noción de transposición hace pie en un análisis desde el hacer, pri-

vilegiando el proceso, el Trans, y la acción mediadora que ejercen el ar-

tista y su dispositivo. Esta noción aparece en las artes visuales desde las

primeras inscripciones sobre la piedra. Involucra la relocalización y se

manifiesta en las múltiples re-escrituras (el palimpsesto). La Transposi-

ción entonces no se homologa con la noción de representación, sino que

recorta aquellas producciones simbólicas que se erigen como plena-

mente metonímicas, cuyo carácter indicial obliga a construir un vínculo

circular con su referente, en este caso el interactor.

Será un propósito a futuro, actualizar la noción de transposición en el

contexto del arte electrónico, entendiendo que la misma se basa en un

doble proceso de descontextualización y recontextualización a través del

cual se establece un tránsito del contenido inicial al contenido trans-

puesto. Veremos si necesario introducir la noción de Transmediación en

su reemplazo, atendiendo a la especificidad del campo, y el posiciona-

miento de éste en favor de la simulación1.

1 Baudrillard, Jean [1978] “La precesión de los simulacros” en Cultura y Simulacro. Barcelona, Ed. Kairós SA, 1984.

Page 7: Presentación paredes 3°c

La obra se proyecta a partir de concebir un dispositivo de

sensado artificial. Para esto se utilizará una webcam, ca-

paz de capturar luz infrarroja, que filtre el espectro visible.

El soporte de captura utilizará una superficie rígida trans-

lúcida, que en el caso del prototipo será de 40 x 50 cm.

El sistema de captura se completa con un proyector digital

ubicado por detrás de la zona de captura.

[1] BOCETO

Page 8: Presentación paredes 3°c

Se parte de una captura de movimiento por sustrac-

ción en posición FALSE (esto es: se analiza la diferen-

cia entre un frame anterior y la imagen actual de cap-

tura).

Se aplicó una estructura de diagrama de estados para

determinar las acciones a realizar.

Se incorporaron clases (agentes) que toman muestras

de color de fotos predeterminadas.

Se obtiene una imagen JPG de cada una de las captu-

ras realizadas por el dispositivo.

Ver programación completa en el anexo de esta pre-

sentación.

[2] PROGRAMACION

Estructura de Programación en processingTrabajo realizado a partir del Diseño de Programación aportado por

Emiliano Causa y Matías Romero Costas.Asignatura Sistemas Dinámicos

Page 9: Presentación paredes 3°c

Partiendo de la programación realizada, se construye

el dispositivo compuesto de una mesa de luz, una cá-

mara web y un proyector colocados de atrás.

Primeras pruebas: la cámara web posee un filtra-

do por el cual, captura la luz infrarroja que se emite

directamente sobre la lente, pero no logra capturar

cuando la iluminación infrarroja es general y distante.

Se analiza asimismo los primeros problemas de espe-

jados entre la proyección y la captura.

[3] Pruebas de sensado y armado de dispositivo

Page 10: Presentación paredes 3°c

Para el desarrollo del presente prototipo, se compró

una webcam económica cuya estructura física permi-

tiera su fácil intervención.

Se consultaron tutoriales on line sobre cómo hackear

una cámara para convertirla en infrarroja. Esto es eli-

minar el filtro que trae de fábrica y posibilitar ampliar

el registro de lectura.

Esto redunda en una disminución en la calidad de cap-

tura.

[4] HACKEO DE CAMARA

Page 11: Presentación paredes 3°c

De acuerdo a las pruebas de captura de movimiento

con diferentes cámaras web, y analizando las diferen-

tes situaciones de iluminación y proyección,se desa-

rrollaron dos prototipos:

1) Iluminación infrarroja con proyección en el mismo

area de sensado. Adaptación de una cámara web para

lectura infrarroja. Se encontraron problemas en el

desplazamiento entre el area de sensado y el de pro-

yección y cambios de escala entre ambos. Obtención

de una propuesta que se acerca al concepto de REALI-

DAD AUMENTADA.

2) Iluminación común y captura con cámara web de

alta definición (luz infrarroja filtrada). Desplazamiento

entre el area de lectura y el area de proyección. Obten-

ción de una propuesta de INTERFAZ mediada entre la

captura y la proyección final.

[5] PROTOTIPOS

Propuesta Dos mesas, una con iluminación infrarroja + cáma-ra web sin filtrado (derecha) / otra con iluminación artificial

común + captura de cámara web filtrada (izquierda)

Page 12: Presentación paredes 3°c

los primeros resultados advierten:

1) Que la captura infrarroja, debido a la calidad de la

cámara, arroja un sensado impresiso.

2) Que se produce un empastamiento visual entre la

mano y lo que resulta de la interacción. Se requiere

un movimiento suave para lograr que el desarrollo

de los agentes permitan dibujar la mano. Al retirarla,

la programación congela la imagen y la guarda en un

archivo JPG.

3) Que una propuesta de interfaz, esto es separar la

captura del resultado, permite mayor juego y mejores

resultados visuales.

[6] RESULTADOS

Page 13: Presentación paredes 3°c

La investigación en torno a esta obra y el de-

sarrollo del prototipo, arrojan las siguientes

observaciones en relación a la propuesta de

realidad aumentada:

1) Calibrar captura y proyección para conse-

guir absoluta coincidencia entre ambas. Las

situaciones de proyección y su consecuente

cambio de escala resultan un factor impor-

tante en esta situación.

2) Mejorar la calidad de captura a través de

cámaras de alta definición, que posean op-

ciones manuales de calibración.

3) Modificar el resultado visual que ofrece

esta obra, ya que la situación dada provoca

superposiciones entre el movimiento de la

mano y el de los agentes, quitando atractivo

e interés a la interacción.

De acuerdo a lo obtenido hasta el momento,

resulta más interesante aplicar esta obra a

través de un concepto de interfaz, donde la

captura y la proyección se desdoblan.

[7] PALIMPSESTO

Page 14: Presentación paredes 3°c

La presente propuesta surge, en su concepción

teórica, de reflexiones que preceden a la presente

maestría, de forma tal que permitió unir esos puntos

de trabajo con las actuales aportaciones técnicas y de

lenguaje propias de las artes electrónicas.

De esta experiencia surgen reflexiones sobre el

estatuto de la obra, su objetualidad-virtualidad, los

niveles de interacción y muy especialmente, cómo

acercar una propuesta que ubique al usuario en el

lugar del realizador, trazando puentes con prácticas

ancestrales que pongan de relieve la especificidad de

las prácticas artísticas en su contexto.

Como proyección del presente prototipo, entendemos

como posibilidad, la realización de un mapping sobre

un escenario natural, que permita el cambio de es-

cala entre la superficie de captura y la de proyección;

un alejamiento de la mímesis, en favor de una pro-

puesta inmersiva time specific que replique la espec-

tacularidad del arte rupestre y exponga las formas de

producir y pensar de cada epoca.

REFLEXION FINAL

Page 15: Presentación paredes 3°c

BIBLIOGRAFIA SITIOS WEB

• AUMONT, Jacques [1990]. Cap 3: “El papel del dispositivo”, en La Ima-gen. Ed. Paidós Ibérica SA, España, 1992. Trad: Antonio López Ruiz. Pp. 143 a 206 https://www.youtube.com/watch?v=1wek7gete5Q

• BAUDRILLARD, Jean [1978] “La precesión de los simulacros” en Cultu-ra y Simulacro. Barcelona, Ed. Kairós SA, 1984.

• BATAILLE, Georges. Lascaux ou la naissnce de l´Art (apéndice). París-Ginebra, Skira, 1955.

• DUBOIS, Philippe. “De la verosimilitud al Index”, en El acto fotográfico. De la Representación a la recepción. Paidós, Barcelona, 1986.

• DUBOIS, Philippe. El Acto Fotográfico y otros ensayos. La Marca edito-ra, Buenos Aires, 2008. Edición Original: L´acte photographique et au-tres essais. Nathan, París, 1990. Traducción en español: Víctor Goldstein.

• KOZAK, Claudia (ed). Tecnopoéticas Argentinas. Archivo blando de Arte y Tecnología. Buenos Aires, Ediciones Caja Negra, 2012.

• PAREDES, Mariana. Transposiciones. Tesis de Grado, Departamento de Artes Visuales “Prilidiano Pueyrredón”- IUNA, Buenos Aires, 2011.

• VVAA. Las Herramientas Metodológicas en las Artes Visuales. El Árbol de Proyección en la Visualización de Ideas. Editado por el Departamento de ArtesVisuales “Prilidiano Pueyrredón”- IUNA, Buenos Aires, 2011.

https://www.youtube.com/watch?v=FEajw1hN7uU

http://joaquinfargas.com.ar/es/

Registro y Documentación de la Obra:http://paredesmariana.wordpress.com/610-2/

Page 16: Presentación paredes 3°c

[Anexo] PROGRAMACION

Código Utilizado en Processing versión 2.1:

import processing.video.*;import fullscreen.*;FullScreen fs;

Capture camara;boolean monitor = true;PMoCap capturaDeMovimiento;

int ancho = 160;int alto = 120;

int cont_blanco = 0; int cont_espera = 20; int imagen_n; int j; String estado;

Agente a[];int cantidad = 10000; Imagen im[];

//-------------------------------

void setup() { size( 800, 600 ); smooth(); noFill(); estado = “esperar”; j = (int)random(0, 5); frameRate( 30 ); im = new Imagen[6]; for ( int i=0; i<6; i++ ) { im[i] = new Imagen(i+”.jpg”); }

a = new Agente[ cantidad ]; for ( int i=0; i<cantidad; i++ ) { a[i] = new Agente(); }

/****** CAPTURA ********/

camara = new Capture( this, an-cho, alto ); camara.start();

float umbral = 50; int cuadrosDelay = 2; boolean conFondo = true;

capturaDeMovimiento = new PMoCap( ancho, alto, umbral, cuadrosDelay, conFondo );

fs = new FullScreen(this); fs.enter(); background( 255 );}//-----------------------------void draw() { println(estado); if ( camara.available() ) { blanco=0; camara.read(); capturaDeMovimiento.captu-rar( camara );

mostrarAgentes(); if (estado.equals(“congelar”)) { println(estado); crearImagen(); estado=”esperar”; cont_espera=0; cont_blanco=0; }

if (estado.equals(“esperar”)) { cont_espera++; println(cont_espera);

if (cont_espera>100 && blanco>200) { for ( int i=0; i<cantidad; i++ ) { a[i].x = random(width); a[i].y = random(height); } j = (int)random(0, 5); capturaDeMovimiento.re-capturarFondo(); background(255); estado=”mover”; cont_blanco=0; cont_espera=0;

} } if (blanco>200) { cont_blanco++; }

if (estado.equals(“mover”)) { if (cont_blanco>80) { estado =”congelar”; } }

if (estado.equals(“esperar”)) { pushStyle(); fill( 255, 3 ); noStroke(); rect( 0, 0, width, height ); popStyle(); } println(j); }}

void keyPressed() { monitor = !monitor;}void mousePressed() { for ( int i=0; i<cantidad; i++ ) { a[i].x = random(width); a[i].y = random(height); } capturaDeMovimiento.recap-turarFondo();}

void mostrarAgentes() { for ( int i=0; i<cantidad; i++ ) { float x = a[i].x; float y = a[i].y; int cx = int( map( x, 0, width, 0, ancho ) ); int cy = int( map( y, 0, height, 0, alto ) );

if ( capturaDeMovimiento.movEnPixel( cx, cy ) ) { blanco++; }

a[i].direccionar( im [j] ); //da un angulo y obtiene el color de la imagen en la posición por donde pasa el agente if (estado.equals(“mover”)) { a[i].mover();

if ( !capturaDeMovimiento.

movEnPixel( cx, cy ) ) { if (!estado.equals(“esperar”)) a[i].dibujar(); } else { a[i].dibujar(255, 15); } } }}

void crearImagen() { imagen_n++; PImage img = createImage(width, height, RGB); loadPixels(); img.loadPixels(); for (int i = 0; i < img.pixels.length; i++) { img.pixels[i] =pixels[i]; } img.updatePixels(); //image(img, 0, 0); img.save(“img/imagen”+imagen_n+”_”+(int)random(100000)+”.jpg”);}

/****** CLASE AGENTES ********/

class Agente { float x, y; float dir, vel; float gris; color suColor;

//---------------------------

Agente() { x = random( width ); y = random( height ); dir = random( TWO_PI ); vel = random( 1, 3 ); suColor = color( random(255), random(255), random(255) ); } //---------------------------

void direccionar( Imagen im ) { color este = im.devolverColor( x , y ); dir = map( hue( este ) , 0 , 255 , 0 , TWO_PI ); suColor = este; } //---------------------------

void dibujar() { stroke( suColor ); strokeWeight (6); point( x, y ); }

void dibujar(int col, int str) { stroke( col ); strokeWeight (str); point( x, y ); } //------------------------

void mover() {

float dx = vel * cos( dir ); float dy = vel * sin( dir );

x += dx; y += dy;

x = ( x>width ? x-width : x ); x = ( x<0 ? x+width : x ); y = ( y>height ? y-height : y ); y = ( y<0 ? y+height : y ); } }

Page 17: Presentación paredes 3°c

[Anexo] PROGRAMACION

/****** CLASE IMAGEN ********/class Imagen { PImage i; Imagen( String nombre ) { i = loadImage( nombre ); } color devolverColor( float x, float y ) { int nx = int( constrain( map( x, 0, width, 0, i.width ), 0, i.width )); int ny = int( constrain( map( y, 0, height, 0, i.height ), 0, i.height )); return i.get( nx , ny ); } void dibujar(){ image( i , 0 , 0 , width , height ); }}/***** CLASE PMoCap ********/class PMoCap { int largo; boolean fondoTomado; boolean hayMovimiento; boolean comparaConFondo; PImage imagenAcomparar; PImage fondoFijo; PImage substraccion; PImage bitonal; float umbral; int arriba, abajo, derecha, iz-quierda;

int area; float x, y; BufferVideo retardo;

/ / --------------------------- PMoCap( int ancho_, int alto_, float umbral_, int fotogramasRetardo, boolean comparaConFondo_ ) {comparaConFondo = comparaCon-Fondo_; ancho = ancho_; alto = alto_; largo = ancho*alto; umbral = umbral_; fondoTomado = false; retardo = new BufferVideo( ancho, alto, fotogramasRetardo ); fondoFijo = createImage( ancho, alto, RGB ); substraccion = createImage( an-cho, alto, RGB ); bitonal = createImage( ancho, alto, RGB ); }//--------------------------- void capturar( PImage entrada ) { if ( !comparaConFondo ) { retardo.cargar( entrada ); imagenAcomparar = retardo.punteroPrimero(); } else { if ( !fondoTomado ) {

fondoFijo.copy( entrada, 0, 0, ancho, alto, 0, 0, ancho, alto); fondoTomado = true; } imagenAcomparar = fondoFijo; } entrada.loadPixels(); imagenAcomparar.loadPixels(); hayMovimiento = false; area = 0; x = 0; y = 0; int posx, posy; long totx = 0; long toty = 0; for ( int i=0 ; i<largo ; i++ ) { posx = i % ancho; posy = i / ancho; color actual = entrada.pixels[i]; color delFondo = imagenAcomparar.pixels[i]; float difRed = abs( red(actual) - red(delFondo) ); float difGreen = abs( green(actual) - green(delFondo) ); float difBlue = abs( blue(actual) - blue(delFondo) ); float gris = ( difRed + difGreen + difBlue ) / 3.0; substraccion.pixels[i] = color( gris, gris, gris ); boolean conMovimiento = gris>umbral; color bitono; if ( conMovimiento ) { bitono = color(255, 255, 255); if ( !hayMovimiento ) { hayMovimiento = true; abajo = arriba = posy; derecha = izquierda = posx; } abajo = max( abajo, posy );

arriba = min( arriba, posy ); derecha = max( derecha, posx ); izquierda = min( izquierda, posx ); totx += posx; toty += posy; area ++; } else { bitono = color(0, 0, 0); } bitonal.pixels[i] = bitono; } if ( area>0 ) { x = totx / area; y = toty / area; } substraccion.updatePixels(); bitonal.updatePixels(); }//------------------------ void capturar( Capture entrada ) { capturar( (PImage) entrada ); }//------------------------- void recapturarFondo() { fondoTomado = false; } //------------------------PImage getImagenAnalisis() {PGraphics grafico = createGraphics( ancho, alto );PImage resultado = createImage( ancho, alto, RGB ); grafico.beginDraw(); grafico.image( bitonal, 0, 0 ); if ( hayMovimiento ) { grafico.stroke(0, 255, 0); grafico.noFill(); grafico.rectMode( CORNERS ); grafico.ellipse(x, y, 5, 5);

Page 18: Presentación paredes 3°c

grafico.rect( izquierda, arriba, derecha, abajo ); } grafico.endDraw(); resultado.copy( grafico, 0, 0, an-cho, alto, 0, 0, ancho, alto ); return resultado; }//------------------------ boolean movEnPixel( int x, int y, PImage imagen ) { boolean valor = blue( bitonal.get( x, y ) ) > 127; int margen = 5; if ( imagen != null ) { color c = ( valor ? color(0, 255, 0) : color(255, 0, 0) ); for ( int i = max(0,x-margen) ; i<min(x+margen,ancho) ; i++ ) { imagen.set( i, y, c ); } for ( int i = max(0,y-margen) ; i<min(y+margen,alto) ; i++ ) { imagen.set( x, i, c ); } } return valor; }//---------------------------- boolean movEnPixel( int x, int y ) { return movEnPixel( x, y, null ); }//---------------------------- float movEnArea( int x, int y, int

ancho_, int alto_, PImage imagen ) { float cuantos = 0; for ( int i=0 ; i<ancho_ ; i++ ) { for ( int j=0 ; j<alto_ ; j++ ) { int posx = x+i; int posy = y+j; boolean valor = blue( bitonal.get( posx, posy ) ) > 127; if ( valor ) { cuantos++; if ( imagen != null ) { imagen.set( posx, posy, co-lor(0, 255, 0) ); } } } }

if ( imagen != null ) { color c = color(255, 0, 0); if ( cuantos>0 ) { c = color(0, 255, 0); } for ( int i=x ; i<x+ancho_ ; i++ ) { imagen.set( i, y, c ); imagen.set( i, y+alto_-1, c ); } for ( int i=y ; i<y+alto_ ; i++ ) { imagen.set( x, i, c ); imagen.set( x+ancho_-1, i, c ); } } return cuantos / ( ancho_ * alto_

); } //------------------------------- float movEnArea( int x, int y, int ancho_, int alto_ ) { return movEnArea( x, y, ancho_, alto_, null ); }//------------------------------- int getArriba() { return arriba; }; //------------------------------- int getAbajo() { return abajo; } //------------------------------- int getDerecha() { return derecha; } //------------------------------- int getIzquierda() { return izquierda; } //------------------------------- int getArea() { return area; } //------------------------------- float getX() { return x; } //------------------------------- float getY() { return y; } //------------------------------- float getUmbral() { return umbral; } //------------------------------- void setUmbral( float nuevoUmbral ) {

umbral = nuevoUmbral; }}//-----------------------------class BufferVideo { PImage buffer[]; int cantidad; int cabeza; int ancho, alto; //-------------------------------

BufferVideo( int ancho_, int alto_, int canti-dad_ ) { cantidad = cantidad_; cabeza = 0; ancho = ancho_; alto = alto_; buffer = new PImage[ cantidad ]; for ( int i=0 ; i<cantidad ; i++ ) { buffer[i] = createImage( ancho, alto, RGB ); } }//-------------------------------

void cargar( Capture imagen ) { buffer[ cabeza ].copy( imagen, 0, 0, ancho, alto, 0, 0, ancho, alto); cabeza = ( cabeza+1 ) % cantidad; }//-------------------------------

void cargar( PImage imagen ) { buffer[ cabeza ].copy( imagen, 0, 0, ancho, alto, 0, 0, ancho, alto); cabeza = ( cabeza+1 ) % cantidad; }//------------------------------- PImage punteroPrimero() { return buffer[ cabeza ]; }}

[Anexo] PROGRAMACION

Page 19: Presentación paredes 3°c

Visitar Proyecto en:http://paredesmariana.wordpress.com/610-2/

Contacto:[email protected]

Móvil: (+54.11) 15.5105.1747