Flashで画像処理するときのコツ

注意) レンダリングの高速化とは別レイヤーの話になります。 去年の記事でAPIレベルの考察はしていますが、今回はもう少し踏み込んで考えてみます。 get/setVector() vs get/setPixels() その前に BitmapData.getVector() と BitmapData.getPixels() のシグネチャを再掲。 両APIともピクセルデータを一次元のコンテナに詰め込むメソッドです。 getPixels(rect:Rectangle):ByteArray ピクセルデータ…

Flashでステレオビジョン入門

Demo: Experiments in Stereo Vision (ByteArrayキャッシュ利用) 実は何年か前に試みたことがあるのですが、たしかFlash CS3とかで作っていて、 その時の.flaファイルが行方不明、、、諦めてリトライしようかと。 今度はちょっと真面目にFlex (Flex SDK 4)で作ってみます。 ステレオグラムを寄り目とかにしながら見て立体視するみたいな、 「人間ががんばる」話ではなく、あくまで機械で立体視をシミュレーションします。 ただ、相当デリケートな処理…

ActionScriptでSuffix Array

今回は画像処理ではなく文字列処理について。Suffix Arrayというデータ構造を扱います。 Suffix Array (接尾辞配列)は、もともと生物情報学の分野でゲノムデータベースの解析などに用いられてきたらしいのですが、そこからテキスト圧縮/検索などの自然言語文書を索引対象とした応用が広がり、全文検索エンジンの文字列索引(インデックス)としても利用されているデータ構造です。 Suffix(接尾辞)とは、索引対象となる文字列T内の任意の位置からTの末尾までの範囲の文字列のことで、Tの長さがN…

mx.rpc.http.HTTPServiceってなに?

このクラスの存在を初めて知りました。 そもそも mx.* パッケージを真面目に調べたことがないから; 今までREST APIなどをActionScriptから利用するときは、URLLoaderとかURLRequestとかURLVariablesとかよく考えると不思議な名前のクラスを使っていましたが、HTTPServiceを使うとちょっと楽です。シンプルになります。 URLLoader.load(URLRequest) っていうインタフェースがどうもしっくりこないので; 以下、Flex 4での利用…

Vector() 関数について

以前書いた位相限定相関のコードなんですが、ピクセルデータを一次元(Number)で扱いたくて

こんな風に書いていました。 ナイトビジョンエフェクトのコードは最初はByteArrayで書いてて、その後でVectorに書き換えています。 get/setVector() vs get/setPixels() で、コードの整理ついでに位相限定相関のコードもVector版で書き換えようとしたんですが、 位相限定相関法はフーリエ変換してからい…

デバイスフォントの回転

FlashPlayer 10からはデバイスフォントの回転ができるようになりましたが、 TextFieldとTextLineで挙動が違うようです。 一応こちらでもテストしてみました。 上段がTextField、下段がTextLineを使ってテキストを回転表示させています。 >> TextRotate.swf 拡大表示するとよく分かりますが、TextFieldのrotationZを使った場合は、 テキストをビットマップにしてから回転させてます。 一方、TextLineのrotationを使った場合は…

Jitter Filter

昨日に引き続き画像処理手法の簡単な紹介。 このフィルタは画素値を周りに拡散させます。 Photoshopの [フィルタ] > [表現技法] > [拡散]と同じ効果です。 実際の処理は参照する座標値をランダムに決めているだけ。 ・ソースコード

・関連記事 Symmetric Nearest Neighbour

Symmetric Nearest Neighbor

すこし落ち着いてきたので久しぶりにFlashを。 今回はSymmetric Nearest Neighbor (SNN)という手法を画像に適用します。 シンメトリック ニアレスト ネイバー。訳すと対称最近傍法。 画素値の差の絶対値を “距離” として、その距離が近い画素の値を選んでいきます。 対称としているのは注目画素に対して対称方向の位置にある2つの画素を参照するからです。 つまり、 1 2 3 4 5 6 7 8 9 とあって5が注目画素なら、1と9、2と8、3と7、…