Как оказалось, можно и в RGB очень хорошо вырезать. Вот:

Код:
<languageVersion : 1.0;>
kernel GreenScreenKeying
<
namespace : "ChromaKeying";
vendor : "Vadim BELLinSKY, feat. by i.o. ;)";
version : 2;
description : "Green screen keying with key-color supression";
>
{
parameter float threshold
<
minValue: float(0.0);
maxValue: float(3.0);
defaultValue: float(1.80);
>;
parameter float factor
<
minValue: float(0.0);
maxValue: float(50.0);
defaultValue: float(2.00);
>;
parameter float supressFactor
<
minValue: float(0.0);
maxValue: float(10.0);
defaultValue: float(1.60);
>;
input image4 src;
output pixel4 dst;
void evaluatePixel()
{
dst = sampleNearest( src, outCoord() );
float valueMatch = clamp( 1.0 - factor * (dst.g * threshold - dst.r - dst.b), 0.0, 1.0 );
dst.a = valueMatch;
dst.r *= valueMatch;
dst.g *= pow( valueMatch, supressFactor );
dst.b *= valueMatch;
}
}
По-моему вырезает если не идеально, то почти идеально ))
Несколько картинок, взятых в гугле с первой страницы с зеленым фоном, вырезались отлично.
Жду ответа.
Добавлено через 2 часа 26 минут
все-таки не совсем отлично..