Здравствуйте. Прошу помощи в решении задачи по усечению (заданию прозрачности серым и чёрным пикселям). Прилаживаю картинку, есть динамическай битмап дата, которая образ человека окрашивает в различный цвет кроме градаций серого, не нужны все серые, чёрные и белые пиксели. Каким образром можно битмапу очистить от них. Написал вот это

Код AS3:
public function byteArrayToBitmapData(bytes:ByteArray, _canvas:BitmapData, _viewport:BitmapData):void{
var calir:Boolean = false;
// прошло ли 5 секунд
if (new Date().time-_calibr<5000) {
calir = true;
}
_canvas.lock();
_viewport.lock();
_canvas.setPixels(new Rectangle(0,0, as3kinect.IMG_WIDTH, as3kinect.IMG_HEIGHT), bytes);
for ( var i=0;i<=as3kinect.IMG_WIDTH; i++) {
for ( var j=0;j<=as3kinect.IMG_HEIGHT; j++) {
var pixel:uint = _canvas.getPixel(i,j);
if (calir) {
_test[pixel] = true;
// если идет время калибровки заполняем массив полученніми пикселями
} else {
if (setmas) {
// если плотный массив пуст заполняем его уникальними цветами
for (var col:String in _test) {
_vect.push(uint(col));
// в результате примерно 50 пикселей
trace(col);
}
setmas = false;
} else {
var nodep:Boolean = true;
// ищем пиксель в калибровочном массиве
for each( var color_id:uint in _vect)
{
if (color_id==pixel) nodep = true;
}
if (nodep) {
_viewport.setPixel32(i,j,0xFFFFFF00);
} else {
_viewport.setPixel32(i,j,0xFF0000);
}
}
}/**/
}
}
_viewport.unlock();
_canvas.unlock();
}
суть в том что на протяжении первых пяти секунд перебираеться попиксельно получаемая картинка и записуються полученные цвета в массив (первые пять секунд нужно быть не в кадре), потом они заполняют вектор и каждую итерацию сравнивается цвет пикселя в масиве, если на сцене появился человек его перекрашивает в красный и при проходе цикла при сравнии с полученным калибровочном массиве идет перерисовка. Но при такой схеме как только добавляешь цикл проверки на градацию серого флешка начинает жудко глючить. Подскажите как еще можно обесцветить серые чёрные и белые пиксели в альфу 0