自分向けメモ。前の記事の奴とかが簡単に作れる。

Shadowを両方とも使ってる

準備

varcam:Camera=Camera.getCamera();

cam.setMode(640,480,24,true);//24fps

cam.setQuality(0,100);

varcamVideo:Video=newVideo(200,150);//bitmap計算用

camVideo.attachCamera(cam);

背景差分法のクラス Subtractor.as

varsubtractor:Subtractor=newSubtractor();

subtractor.threshold=30;

//結果表示用

varshadowBmp:Bitmap=newBitmap(subtractor.shadow.getBitmapData());//bmdを操作すると逐次bmpに反映される

shadowBmp.width=320;

shadowBmp.height=240;

this.addChild(shadowBmp);

subtractor.bg.draw(camVideo);//背景取得

//背景差分法で変化のあったピクセルを検出、黒く塗りつぶす

subtractor.bmd.draw(camVideo);

subtractor.subtract();

影抜き用クラス Extractor.as

varextractor:Extractor=newExtractor();

extractor.threshold=5;

varrawBmp:Bitmap=newBitmap(extractor.bmd);//元画像の表示用

this.addChild(rawBmp);

rawBmp.width=400;

rawBmp.height=300;

varsilhouetteBmp:Bitmap=newBitmap(extractor.silhouette.getBitmapData());//影表示用

silhouetteBmp.x=400;

silhouetteBmp.width=400;

silhouetteBmp.height=300;

this.addChild(silhouetteBmp);

extractor.bmd.draw(camVideo);

extractor.point=newPoint(mouseX,mouseY);

extractor.extract();