カメラ画像にディザ

Bayer_Dither
(Flashが表示されない人はこちら→CameraDither.swf 要 Webカメラ)

去年、 ディザ法による画像の疑似階調表現というのを紹介しましたが(ディザ法 – AS3.0)、
これをカメラ画像に適用してみたところ、負荷は高いですがなんとか動きました。
前回はByteArrayを使ったので、今回はBitmapData版のディザ法(ベイヤーパターン)のコードを載せておきます。
ここでは約1677万色(RGB24ビット)から8色(RGB3ビット)にまで色数を減らしています。
[as]
private function bayerDither(img:BitmapData):void {
var r:int = 0, g:int = 0, b:int = 0, abr:int = 0;
var data:uint = 0;
var pattern:Vector. = Vector.([1,9,3,11, 13,5,15,7, 4,12,2,10, 16,8,14,6]);
for(var y:int=0; y> 16 & 0xff) >> 4) < pattern[abr]) ? 0 : 0xff; g = (((data >> 8 & 0xff) >> 4) < pattern[abr]) ? 0 : 0xff; b = (((data & 0xff) >> 4) < pattern[abr]) ? 0 : 0xff; img.setPixel(x, y, (r << 16 | g << 8 | b)); } } } [/as]

あわせて読む:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です