private function mouseUpHandler( e:MouseEvent ):void {
stage.removeEventListener( e.type, arguments.callee );
camera = Camera.getCamera();
if ( camera != null ) {
setupPalette();
setupPattern();
setupEffect();
}
}
private function setupPalette():void {
rPalette = new Array( 256 );
gPalette = new Array( 256 );
bPalette = new Array( 256 );
for ( var i:int = 1; i < 256; ++i ){
rPalette[ i ] = 0xff0000;
gPalette[ i ] = 0x00ff00;
bPalette[ i ] = 0x0000ff;
}
}
private function setupPattern():void {
var bayer_bd:BitmapData = new BitmapData( 4, 4, false, 0x000000 );
for ( var y:int = 0; y < 4; ++y ) {
for ( var x:int = 0; x < 4; ++x ) {
var c:int = bayer_arr[ 4*y+x ]*16+8;
bayer_bd.setPixel( x, y, c << 16 | c << 8 | c );
}
}
var temp:Shape = new Shape();
temp.graphics.beginBitmapFill( bayer_bd );
temp.graphics.drawRect( 0, 0, CAMERA_W, CAMERA_H );
temp.graphics.endFill();
private function mouseUpHandler( e:MouseEvent ):void {
stage.removeEventListener( e.type, arguments.callee );
camera = Camera.getCamera();
if ( camera != null ) {
setupPattern();
setupEffect();
}
}
private function setupPattern():void {
var bayer_bd:BitmapData = new BitmapData( 4, 4, false, 0x000000 );
for ( var y:int = 0; y < 4; ++y ) {
for ( var x:int = 0; x < 4; ++x ) {
var c:int = bayer_arr[ 4*y+x ]*16+8;
bayer_bd.setPixel( x, y, c << 16 | c << 8 | c );
}
}
var temp:Shape = new Shape();
temp.graphics.beginBitmapFill( bayer_bd );
temp.graphics.drawRect( 0, 0, CAMERA_W, CAMERA_H );
temp.graphics.endFill();
function labeling2(src:BitmapData):BitmapData {
var dst:BitmapData = src.clone(); // ソースの複製を作る
var temp:BitmapData = new BitmapData( dst.width, 1, false, 0x000000 );
var lno:int = 0;
var zero:Point = new Point();
var rect:Rectangle = dst.getColorBoundsRect( 0xffffff, 0xffffff, true );
var area:Rectangle = new Rectangle( 0, 0, dst.width, 1 );
while ( !rect.isEmpty() ){
area.y = rect.top;
temp.copyPixels( dst, area, zero );
rect = temp.getColorBoundsRect( 0xffffff, 0xffffff, true );
dst.floodFill( rect.x, area.y, ++lno );
rect = dst.getColorBoundsRect( 0xffffff, 0xffffff, true );
}