Rest Term

Vector() 関数について

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

こんな風に書いていました。
ナイトビジョンエフェクトのコードは最初はByteArrayで書いてて、その後でVectorに書き換えています。
get/setVector() vs get/setPixels()
で、コードの整理ついでに位相限定相関のコードもVector版で書き換えようとしたんですが、
位相限定相関法はフーリエ変換してからいろいろ計算する必要があります。
でも、getVector() の戻り値が Vector.<uint> なのでこのままでは使えません。
ということで、

と書いて実際これで上手く動いたのですが、これって新しいVectorをさらにもう一つ生成してることになるの?
ちなみに速度的には前述の getPixel() での一次元化とほとんど変わりませんでした。
(計算量的にはこの部分がボトルネックになってるわけではないのですが;)
メリットはコードが少しだけ短くなることですかね。

参考:トップレベルの定数と関数 - ActionScript 3.0 言語およびコンポーネントリファレンス

・ソースコード
FFT演算用クラスはこれまで利用してきたものと同じものです → FFT.as

・出力結果
time: 1542 ms
peak: 0.44900903245107504, position: (x=86, y=45)

あわせて読む:

 

Tags: ,

Comments

No comments so far.

  • Leave a Reply
     
    Your gravatar
    Your Name