xxxxxxxxxx
114
//Prototype of Project 2: Experimental Camera
//by Heeya Mody
//faculty: Xin Xin and Aarati Akkapeddi
let capture;
let vScale = 1;
let tracker;
let sx; //source x
let sy; //source y
let sw = 20; //source w
let sh = 20; //source h
let dx; //destination x
let dy; //destination y
let dw = 20; //destination w
let dh = 20; //destination h
function setup() {
createCanvas(640, 480);
rectMode(CENTER);
frameRate(1);
pixelDensity(1);
//create video capture
capture = createCapture(VIDEO);
//resize the video capture
capture.size(width, height);
//hide the video capture HTML element
capture.hide();
tracker = new clm.tracker(); //create clmtracker object
tracker.init(); //initialize
tracker.start(capture.elt);
}
function draw() {
background(220);
//flip video
translate(width, 0);
scale(-1, 1);
capture.loadPixels();
let positions = tracker.getCurrentPosition();
// image(capture, 0, 0, width, height);
if(positions){
// ellipse(positions[27][0], positions[27][1], 5, 5);
// ellipse(positions[32][0], positions[32][1], 5, 5);
let d = int(dist(positions[32][0], positions[32][1], positions[27][0], positions[27][1]));
// console.log(d);
// rect((positions[32][0] - positions[27][0])/2 + positions[27][0], positions[27][1], d+100, d+200);
sx = int((positions[32][0] - positions[27][0])/2 + positions[27][0] - (d+100)/2);
sy = int(positions[27][1] - (d+200)/2);
sw = d+100;
sh = d+200;
dx = width/2;
dy = height/2;
dw = 100;
dh = 150;
for (let i = sx; i < sx+sw; i++){
for (let j = sy; j < sy+sh; j++){
//magic formula: x + y * width * 4
let index = (i + j * capture.width) * 4;
let r = capture.pixels[index];
let g = capture.pixels[index + 1];
let b = capture.pixels[index + 2];
let brightness = (r+g+b)/3; //average of all three values
if(brightness < 255 && brightness >= 220){
fill(232, 233, 201); //light
} else if(brightness < 220 && brightness >= 190){
fill(133, 187, 101); //medium
} else {
fill(34, 141, 87); //dark
}
rect(i/2*vScale, j/2*vScale, 1, 1);
// tint(0, 155, 0, 200);
// dx = dw * i;
// dy = dh * j;
// sx = sw * i;
// sy = sh * j;
// let offset = 120;
}
}
// let copiedImg =
copy(capture, sx, sy, sw, sh, dx, dy, dw, dh);
// console.log(copiedImg);
}
capture.updatePixels();
}