Fórmula de balanço de brancos (supressão de cores)?

Preciso de ajuda com um pouco de matemática das cores. (RGBA) Estou tentando reduzir a quantidade de verde em um personagem, sem afetar o fundo verde. Tela verde para efeitos visuais.

Então aqui está o que eu tenho:

Eu tenho um cara na tela verde.

Usando a expressão:g>(r+b)/2 ? (r+b)/2:g A expressão diz que se o valor da cor verde for maior que a soma do vermelho e do azul dividido por 2, então o verde será definido para essa soma. Executar essa expressão me dará a segunda imagem. Você pode ver que o verde é removido perfeitamente do cara, o que eu quero, mas também tira o verde do fundo e o torna cinza, o que eu não quero.

Esta imagem aqui é quanto verde é removido. Eu entendo isso subtraindo a primeira imagem da segunda. Então é a diferença entre os dois.

Alguém pode me ajudar a descobrir como só posso remover o verde do cara e não o fundo por meio de uma expressão / fórmula? Tentei fixar o verde, ou seja, escrever uma expressão que diz: para qualquer pixel verde que esteja abaixo de um determinado valor que não seja igual ao verde de fundo, torne-o preto. Isso meio que funciona, mas é muito duro nas bordas finas como esse cabelo.

Abaixo está o resultado desejado que eu consegui fazendo muita correção e classificação de cores. Eu adoraria obter esse resultado via expressão.

e aqui está o resultado final. parece ótimo. Esta imagem é o verde desaparecido do personagem, mas não o fundo. Eu consegui isso adicionando a imagem acima à segunda imagem.Eu fiz uma tela dividida para que você possa ver a diferença. visível principalmente na jaqueta e no cabelo.

questionAnswers(2)

yourAnswerToTheQuestion