xxxxxxxxxx
let video;
let blackVal = 112;
let whiteVal = 175; // Between 100 and 150 is colorful
let normalDisplay = true;
function setup() {
createCanvas(windowHeight, windowHeight);
video = createCapture(VIDEO);
video.size(width, height);
video.hide(); // Hide the video element
}
function draw() {
if (mouseIsPressed) {
normalDisplay = true;
} else {
normalDisplay = false;
}
if (normalDisplay) {
image(video, 0, 0, width, height); // Display the video normally
} else {
background(0);
video.loadPixels();
for (let y = 0; y < height; y++) {
for (let x = 0; x < width; x++) {
let loc = (x + y * width) * 4;
let r = video.pixels[loc];
let g = video.pixels[loc + 1];
let b = video.pixels[loc + 2];
if (r > whiteVal && g > whiteVal / 2 && b > whiteVal / 2) {
r = 255;
g = 255;
b = 255;
} else if (r < blackVal && g < blackVal && b < blackVal) {
r = 0;
g = 0;
b = 0;
} else {
let maxVal = max(r, g, b);
// Set only the highest value to 255, other channels to 0
if (maxVal == r) {
r = 255;
g = 0;
b = 0;
} else if (maxVal == g) {
r = 0;
g = 255;
b = 0;
} else {
r = 0;
g = 0;
b = 255;
}
}
set(x, y, color(r, g, b));
}
}
updatePixels();
}
}