cvDFTでフーリエ変換
void cvDFT( const CvArr* src, CvArr* dst, int flags, int nonzero_rows );†
srcをフーリエ変換してdstに格納
返り値†
void cvFFT( const CvArr* src, CvArr* dst, int flags, int nonzero_rows );†
define文によるcvDFTのエイリアスなので詳細は割愛
int cvGetOptimalDFTSize( int size );†
DFTを処理するのに最適なサイズを返す
返り値†
- srcとdstは例によって同じサイズ,タイプ,チャンネル数の必要あり
- flagsは以下のいずれか,もしくは組み合わせ
- CV_DXT_FORWARD(0)
- CV_DXT_INVERSE(1)
- CV_DXT_SCALE(2)
- CV_DXT_ROWS(4)
- CV_DXT_INV_SCALE(CV_DXT_SCALE|CV_DXT_INVERSE)
- CV_DXT_INVERSE_SCALE(CV_DXT_INV_SCALE)
- nonzero_rowsは非0の行数を指定する
- cvGetOptimalDFTSizeで返される数字はDFTに適した数字
- DFTよりFFTが高速
- FFTは2^nの要素数の必要がある
- 入力の配列に0を追加してFFTに最適な長さを計算する
- 実際はその3倍,5倍にも対応している(R1にて)
- 結果で-1が返って来た場合は,失敗(理論的にありえないけれど)
サンプルコード†
実体ファイル†
- cxcore/include/cxcore.h
- cxcore/src/cxdxt.cpp
ジャンル:OpenCV:OpenCV 1.1準拠