Как точно отфильтровать значение RGB для эффекта хроматического ключа

Я просто читалэтот учебник и попробовал этот пример. Поэтому я скачал видео из Интернета для собственного тестирования. Все, что мне нужно сделать, это настроить значения RGB в условиях

ЗДЕСЬ пример кода из примера

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;
  }

В учебном примере это фильтрация желтого (не желтого цвета). В загруженном образце видео используется зеленый фон. Поэтому я подправил значение rgb в условии if, чтобы получить желаемый результат

После нескольких попыток мне удалось получить это.

Теперь я хочу знать, как я могу точно отфильтровать зеленый экран (или любой другой экран), не догадываясь. Или случайное изменение значений.

Просто догадываясь, что это займет несколько часов, чтобы понять все правильно. И это всего лишь пример с приложением реального мира. Это может занять больше.

ПРИМЕЧАНИЕ: пример работает в Firefox сейчас ..

Ответы на вопрос(2)

Ваш ответ на вопрос