Cette application verrait tout son interet lors d'une publication d'un flux video sur fond uni.
On pourrait ainsi remplacer le fond par une valeur alpha (transparente).
Exemple :



Le code :
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
///////
cam = Camera.get();
vid.attachVideo(cam);
///////
now = new BitmapData(cam.width, cam.height);
rect = new Rectangle(0, 0, cam.width, cam.height);
pt = new Point(0, 0);
///////////
var rwgt:Number = .3086;
var gwgt:Number = .6094;
var bwgt:Number = .0820;
var color:Number = 0xff999999;
/////////
_onEnterFrame = function () {
if (!cam.muted) {
now.draw(vid);
//remplace le gris par alpha (transparent)
now.threshold(now, rect, pt, '>=', color, 0x00000000);
//transforme le flux video en niveaux de gris
mc.filters = [luminanceTransform];
}
};
inter = setInterval(this, "_onEnterFrame", 50);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(now, 10);
var luminanceTransform:ColorMatrixFilter = new ColorMatrixFilter(new Array(rwgt, gwgt, bwgt, 0.0, 0.0, rwgt, gwgt, bwgt, 0.0, 0.0, rwgt, gwgt, bwgt, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));


Comme vous pourrez le constater, ce code est juste un exemple simple... libre à vous de l'adapter !