Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ブックマーク / rest-term.com (5)

  • Flashで画像処理するときのコツ – Rest Term

    注意) レンダリングの高速化とは別レイヤーの話になります。 去年の記事でAPIレベルの考察はしていますが、今回はもう少し踏み込んで考えてみます。 get/setVector() vs get/setPixels() その前に BitmapData.getVector() と BitmapData.getPixels() のシグネチャを再掲。 両APIともピクセルデータを一次元のコンテナに詰め込むメソッドです。 getPixels(rect:Rectangle):ByteArray ピクセルデータの矩形領域からバイト配列を生成します。 getVector(rect:Rectangle):Vector.<uint> ピクセルデータの矩形領域からベクター配列を生成します。 速度を比較すると get/setVector() の方が高速です。 が、 重要なのはAPIの実行速度ではなく、 「取得したデ

    Flashで画像処理するときのコツ – Rest Term
    airprop
    airprop 2010/10/18
    BitmapData.getVector, BitmapData.getPixels の処理違いの考察。良記事
  • 位相画像 - Rest Term

    引き続き、空間周波数領域での画像処理について。 前回、前々回と扱っていたスペクトル画像は周波数成分の振幅特性を表したものでした。 今回は画像の位相特性に注目し、位相画像を生成します。 (位相画像は位相限定画像とも呼ばれる) FFT演算用クラスはこれまで利用してきたものと同じものです。 (ここではスペクトル位置の並び替え部分は不要なのでその部分の処理は省略できます) ・位相画像の生成 package { import __AS3__.vec.Vector; import flash.display.*; public class Test extends Sprite { [Embed(source = './assets/gray.jpg')] private var EmbedImage:Class; private var srcBmp:Bitmap; private var dstB

    位相画像 - Rest Term
  • ハイパス/ローパスフィルタ – Rest Term

    前回の続き。 今回はフーリエ変換で得られた周波数スペクトルにハイパスフィルタ(HPF)/ローパスフィルタ(LPF)をかけます。 Flashだとサウンド関連でよく耳にするフィルタかもしれませんが、画像でも基は同じです。 前回作ったクラスにフィルタ処理等を追加します。 ・1D/2D-FFT + HPF/LPF (追記 2008 12/19) バンドパスフィルタ(BPF)の処理を追加。 (追記 2009 2/20) 空間周波数フィルタのメソッドを少し修正。処理内容は変わってません。 package { import __AS3__.vec.Vector; /* * Fast Fourier Transform implementation in pure AS3 */ public class FFT { private var n:int; private var bitrev:Vector

    ハイパス/ローパスフィルタ – Rest Term
  • 離散フーリエ変換 – AS3.0 – Rest Term

    “画像” に対する離散フーリエ変換について。 ”音” は扱わないので注意。 また、一度で書くには分量が多いので何回かに分けて書こうと思います。 ・離散フーリエ変換 (DFT) フーリエ変換についてはFlasherの間でも音関連でよく話題に出ているようなので理論的な説明は省きます。 画像の場合も音の周波数解析と基は同じ。 ただ、音と違って画像は二次元なので空間周波数領域への変換を行うことになります。 (音の信号 x(t)は一次元、画像の信号 f(x,y) は二次元になる) 実際の計算ではX軸方向にフーリエ変換した後、データを転置してY軸方向にもう一度フーリエ変換します。 また、高速に計算を行うために実装上では高速フーリエ変換(FFT)を用いるのが一般的です。 とりあえずは一次元のFFT(1D-FFT)から始めます。 ActionScriptでの例は以下のようになります。 ・1D-FFT p

    離散フーリエ変換 – AS3.0 – Rest Term
  • 二次元離散フーリエ変換 – AS3.0 – Rest Term

    前回の続き。今回は画像に対するフーリエ変換です。 前回は一次元の話でしたが、画像の場合は平面なので水平/垂直方向の2つの周波数を持つことになります。 実際に画像に対して二次元フーリエ変換を行うには、 x軸方向に一次元フーリエ変換 → y軸方向に一次元フーリエ変換 という手順で処理します。 ここでは、前回作ったクラスを少し拡張します。 ・2D-FFT public function fft2d(re:Vector.<Number>, im:Vector.<Number>):Boolean { var tre:Vector.<Number> = new Vector.<Number>(re.length, true); var tim:Vector.<Number> = new Vector.<Number>(im.length, true); // x軸方向のFFT for(var y:in

    二次元離散フーリエ変換 – AS3.0 – Rest Term
  • 1