Como filtrar com precisão o valor RGB para obter um efeito de chave de croma
eu acabei de leresta tutorial e tentei este exemplo. Então, baixei um vídeo da Web para meus próprios testes. Tudo o que preciso fazer é ajustar os valores de rgb nas condições
AQUI é o código de exemplo do exemplo
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;
}
No exemplo do tutorial, está filtrando a cor amarela (não amarela, eu acho). O vídeo de amostra que baixei usa fundo verde. Então ajustei o valor rgb na condição if para obter os resultados desejados
Após várias tentativas, consegui isso.
Agora, o que eu quero saber é como filtrar com precisão a tela verde (ou qualquer outra tela) perfeitamente sem adivinhar. Ou ajustando valores aleatoriamente.
Com apenas adivinhar que leva horas para acertar perfeitamente. E isso é apenas uma amostra com um aplicativo do mundo real. Pode demorar talvez mais.
NOTA: O exemplo está funcionando no Firefox por enquanto.