Je viens de lire le tutoriel this et j'ai essayé cet exemple. J'ai donc téléchargé une vidéo sur le Web pour mes propres tests. Tout ce que je dois faire est de tordre les valeurs rgb si les conditionsComment filtrer avec précision la valeur RVB pour l'effet de chrominance
Voici l'exemple de code de l'exemple
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;
}
Dans l'exemple tutoriel son filtrage sur la couleur jaune (je suppose que non jaune). L'exemple de vidéo que j'ai téléchargé utilise un arrière-plan vert. J'ai donc ajusté la valeur rgb dans if condition pour obtenir les résultats désirés
Après plusieurs tentatives, j'ai réussi à obtenir ceci.
Maintenant ce que je veux savoir comment puis-je filtrer avec précision sur écran vert (ou tout autre écran) parfaitement sans deviner. Ou ajuster les valeurs au hasard. Avec juste deviner cela prend des heures pour le faire parfaitement bien. Et ce n'est qu'un exemple avec une application du monde réel. Cela peut prendre peut-être plus.
REMARQUE: L'exemple fonctionne dans Firefox pour l'instant ..
Très bel exemple .. mais j'ai encore des problèmes à résoudre ..Visuellement, il ressemble pareil .. comment puis-je déterminer les nuances sombres et claires en regardant les valeurs RVB. –
@Akash Kumar vers le centre est à peu près toujours plus lumineux que les coins de la greenscreen. S'il y a encore du vert qui n'est pas filtré, la couleur le laisse tomber et l'utilise comme nouveau clair ou sombre. Cela peut prendre quelques passages, mais cela ne devrait prendre que quelques minutes. – Entity
got it .. nécessaire pour ajuster la tolérance un peu .. –