Efecto ondas con webcam


import processing.video.*;

Capture cam;
PImage img;

void setup() {
  size(640, 480); //Modifica tamaño de ventana 

  // Inicializamos la cámara
  cam = new Capture(this, 640, 480); //Modifica y controla las dimensiones del video
  cam.start();

  // Creamos una imagen vacía
  img = createImage(10000, 480, RGB); //Distorsiona la forma de la imagen
}

void draw() {
  // Actualiza la imagen de la cámara
  if (cam.available()) {
    cam.read();
  }

  // Copia la imagen de la cámara a la imagen vacía
  img.copy(cam, 0, 0, cam.width, cam.height, 0, 0, img.width, img.height);

  // Aplica una distorsión a la imagen
  for (int x = 0; x < img.width; x++) {
    for (int y = 0; y < img.height; y++) {
      float r = dist(x, y, img.width/2, img.height/2);
      float offset = sin(r/10.0) * 20.0;
      img.set(x, y, cam.get((int)(x+offset), (int)(y+offset)));
    }
  }

  // Dibujamos la imagen en el lienzo
  image(img, 0, 0);
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *