ActionScript 3.0によるエッジ抽出の実装です。
ConvolutionFilterクラスを使います。
ConvolutionFilter クラスを使用すると、マトリックス畳み込みフィルタ効果を適用できます。
畳み込みでは、入力イメージ内のピクセルを、隣接するピクセルと組み合わせて、イメージを作成します。
畳み込みを使用すると、ぼかし、エッジ検出、シャープ、エンボス、ベベルなど、幅広いイメージ効果を実現できます。
sample.as
package
{
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.media.Camera;
import flash.media.Video;
import flash.geom.*;
public class CameraEx extends Sprite
{
private var bitmapData:BitmapData;
private var bitmap:Bitmap;
public function CameraEx()
{
bitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false, 0xffffff);
bitmap = new Bitmap(bitmapData);
addChild(bitmap);
var camera:Camera = Camera.getCamera();
camera.setMode(stage.stageWidth, stage.stageHeight, 10, true);
if(camera != null) {
this.addEventListener(Event.ENTER_FRAME, function(e:Event):void
{
bitmapData.draw(video);
var edge:Array = [0, -1, 0, -1, 4, -1, 0, -1, 0];
var conv:ConvolutionFilter = new ConvolutionFilter(3, 3, edge, 1);
bitmap.filters = [conv];
});
var video:Video = new Video(stage.stageWidth, stage.stageHeight);
video.attachCamera(camera);
}
}
}
}