ディジタル画像のフーリエ変換についての質問なのですが、2次元高速フーリエ変換においてデータ数(画像の縦or横の画素数)が2のべき乗では無い場合や縦と横の画素数が異なる場合でもFFTは使用する事ができるのでしょうか?例えば128*128の画像をFFTすると128*128個の複素数のデータが得られますが(実数部と虚数部)、128*64の画像から128*64個のデータを得たり、100*40の画像から100*40個のデータを得ることはできるのでしょうか?最近ある画像処理の論文を参照していたら2のべき乗ではなく画像の適当な範囲をFFTしていました。FFTでは無くDFTなら可能だと思うのですが、参照した論文ではFFTと書いてあったので気になり質問させていただきました。今手元にあるのは縦と横の画素数が同じでかつ2のべき乗でなければ出来ないプログラムなのですが(時間間引きのFFT)、もし上記の事が可能なFFTのC言語で書かれたソースプログラムがありましたら教えていただきたく思います。また同時に上記のことが可能なDFTのC言語で書かれたソースプログラムも募集させていただきたいと思います。よろしくお願い申し上げます。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2007/12/24 11:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:ita No.1

回答回数204ベストアンサー獲得回数48

ポイント60pt

http://www.fftw.org/

任意サイズ、1,2,3次元で使えます。

id:yujiroukun

ご回答ありがとうございます。私はC++Builderを使用しているのですが、とりあえず指定していただいたHPから何とか実行できるようにトライしてみます。その後コメントもしくは質問させていただくと思うのでよろしくお願い申し上げます。

2007/12/18 01:20:56
  • id:ita
    FFTのバタフライアルゴリズムは2の冪の時に特に速いけど、
    PCだとキャッシュの関係で3も約数に入ってるほうが速かったりするという話を聞いたことがあります。

    二次元、三次元とFFTが使用可能かというのは関係ないです。
    まずX方向にFFTかけてA(Kx,Y)というようなデータにして、次にY方向にFFTかければいいですから。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません