Slit-Scan da webcam a immagine statica

    let capture;
let captureReady = false; // cattura non pronta a restituire fotogrammi
let porzioneX = 0;

function setup() {
    createCanvas(670, 240);
    pixelDensity(1);

    capture = createCapture(VIDEO, function (stream) {
        captureReady = true;  // cattura pronta
    });
    capture.size(320, 240);
    capture.hide();
}

function draw() {
    if (captureReady) {
        let captureX = capture.width / 2;
        let porzione = capture.get(captureX, 0, 1, height);
        image(porzione, porzioneX, 0);
        porzioneX = (porzioneX + 1) % width;
    }
}
  

  

Crea l’elemento HTML usato per la cattura dei fotogrammi della webcam e definisci una funzione da chiamare quando il flusso di fotogrammi è pronto. La funzione imposta a true la variabile globale captureReady.


  

Leggi la colonna di pixel (porzione) al centro del fotogramma (captureX).


  

Sposta a destra la coordinata x della colonna di pixel da riempire sul canvas e falla ripartire da 0 (bordo sinistro) quando supera width (bordo destro).

Un esempio più complesso di slit-scan, che usa righe di pixel anche di fotogrammi precedenti, si può vedere nello sketch Chronotopic Anamorphosis commentato in italiano.