Cómo filtrar con precisión el valor RGB para el efecto de clave de croma
acabo de leeresta tutorial y probé este ejemplo. Así que descargué un video de la web para mis propias pruebas. Todo lo que tengo que hacer es ajustar los valores rgb en condiciones if
AQUÍ está el código de muestra del ejemplo
computeFrame: function() {
this.ctx1.drawImage(this.video, 0, 0, this.width, this.height);
let frame = this.ctx1.getImageData(0, 0, this.width, this.height);
let l = frame.data.length / 4;
for (let i = 0; i < l; i++) {
let r = frame.data[i * 4 + 0];
let g = frame.data[i * 4 + 1];
let b = frame.data[i * 4 + 2];
if (g > 100 && r > 100 && b < 43)
frame.data[i * 4 + 3] = 0;
}
this.ctx2.putImageData(frame, 0, 0);
return;
}
En el ejemplo del tutorial está filtrando el color amarillo (no amarillo, supongo). El video de muestra que descargué usa fondo verde. Así que modifiqué el valor rgb en condición if para obtener los resultados deseados
Después de varios intentos, logré obtener esto.
Ahora lo que quiero saber es cómo puedo filtrar con precisión la pantalla verde (o cualquier otra pantalla) perfectamente sin adivinar. O ajustar valores al azar.
Con solo adivinarlo, se necesitan horas para hacerlo bien. Y esto es solo una muestra con una aplicación del mundo real. Puede tomar tal vez más.
NOTA: El ejemplo está funcionando en Firefox por ahora.