xxxxxxxxxx
83
//https://www.youtube.com/watch?v=VYg-YdGpW1o
let video_in;
let r = [], g = [], b = [];
let r_pre = [], g_pre = [], b_pre = [];
let grandezza_griglia = 20;
let tempo = 0 ;
let tempo_cattura = 10;
function setup() {
createCanvas(windowWidth, windowHeight);
video_in = createCapture(VIDEO);
video_in.size(width, height);
video_in.hide();
for (let y = 0; y < video_in.height; y+= grandezza_griglia) {
for (let x = 0; x < video_in.width; x+= grandezza_griglia) {
let loc = (x + y * video_in.width) * 4;
r_pre[loc] = video_in.pixels[loc];
g_pre[loc + 1] = video_in.pixels[loc + 1];
b_pre[loc + 2] = video_in.pixels[loc + 2];
} //fine for lunghezza
} //fine for altezza
}
function draw() {
background(0);
let d = pixelDensity();
//---specchio immagine----//
translate(video_in.width, 0);
scale(-1, 1);
image(video_in, 0, 0, width, height); //immetto video sul canvas
video_in.loadPixels();
if (millis() - tempo > tempo_cattura) {
tempo = millis();
for (let y = 0; y < video_in.height; y+= grandezza_griglia) {
for (let x = 0; x < video_in.width; x+= grandezza_griglia) {
let loc = (x + y * video_in.width) * 4;
r[loc] = video_in.pixels[loc];
g[loc + 1] = video_in.pixels[loc + 1];
b[loc + 2] = video_in.pixels[loc + 2];
let diff_r = abs(r[loc] - r_pre[loc]);
let diff_g = abs(g[loc + 1] - g_pre[loc + 1]);
let diff_b = abs(b[loc + 2] - b_pre[loc + 2]);
let diff = diff_r + diff_g + diff_b;
if (diff > 50) {
let raggio = int(map(diff, 0, 255 * 3, 0, 150));
ellipse(x, y, raggio, raggio);
}
r_pre[loc] = r[loc];
g_pre[loc + 1] = g[loc + 1];
b_pre[loc + 2] = b[loc + 2];
} //fine for lunghezza
} //fine for altezza
} //fine tempo cattura
}