あなたの質問を正しく理解できれば、時間座標に関してフーリエ変換を計算したいと思うでしょう。
そのためには、3D キューブを 2D マトリックスに再形成する必要があると思います。ここで、垂直座標はピクセル インデックス (範囲 [0, MN-1]) であり、水平座標は時間 (範囲 [0 、T-1])、つまり、各行にはシーケンス内の 1 つのピクセルの値が含まれます。cv::dft()次に、関数とフラグを使用して、各行に沿って DFT ルーチンを適用できますCV_DFT_ROWS。
行列の作成
マトリックスを作成するには、次のように進めます (ビデオ フレームに M 行と N 列があると仮定します)。
NM行とTcv::Mat列で aを割り当てます。ここで、T は時間ウィンドウの幅です (数フレームまたは while シーケンスの長さである可能性があります)。この行列をW (ウィンドウ)と呼びましょう。
ウィンドウ内の各フレーム I(.,.,t) に対して、各ピクセル I(x,y,t) ([0,N-1] の範囲の x、[0,M-1] の範囲の y) をコピーします。 W の対応する位置、つまりW(y*M+x, t)。
このプロセスの最後に、W は各行に 1 つのピクセルの時間的に変化する値を含みます。cv::dft次に、フラグを指定して W を呼び出しCV_DFT_ROWS、2D フーリエ変換を水平方向に制限します。ここでは時間です。