自分向けメモ。前の記事の奴とかが簡単に作れる。
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();