問題タブ [dft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2500 参照

c++ - C++でOpenCVを使用してgpu::dftによって実行されるスケーリング

GPUで高速化されたアルゴリズムを使用して、高速でメモリを節約するdftを実行したいと思います。しかし、を実行すると、ドキュメントgpu::dftで説明されているように、宛先マトリックスがスケーリングされます。幅をにスケーリングすることでこの問題を回避するにはどうすればよいですか?また、なぜこのようにスケーリングされるのですか?DFTの私のコードはこれです:dft_size.width / 2 + 1

ここで、は512x512inCV_32FC1行列です。

最良の解決策は、サイズd_in.sizeとタイプがである宛先マトリックスCV_32FC2です。

0 投票する
2 に答える
1616 参照

java - 正弦サンプルの離散フーリエスペクトル分析からの予期しない結果

http://jvalentino2.tripod.com/dft/index.html

私のコードは実際には上記のコピーにすぎません。

このサンプルで実行すると:http://vigtig.it/sin440.wav

私はこの結果を得る:

440 hzで最高の応答が期待できますが、そうではありません。誰かがバグを見つけたり、結果をどのように誤解しているのかを教えてくれますか?

編集

バイト/整数変換を調べた後、代わりにByteBufferを使用するようにスクリプトを変更しました。現在、意図したとおりに機能しているようです。作業コピーは次のとおりです。

0 投票する
0 に答える
7609 参照

c++ - C++ での DFT の実装

画像を処理するためにC++言語でDFT (離散フーリエ変換)を実装したいと考えています。

1D DFT の式

理論を勉強していると、2D DFT を2 つの 1D DFT部分に分割できることがわかりました。まず、行ごとに 1D DFT を実行し、次に列ごとに実行します。もちろん、複素数の演算を行う必要があります。

ここでいくつかの問題が発生します。これは、複素数の実部と虚部をどこで使用するかわからないためです。入力画像ピクセルの値は、虚数部を 0 に設定した実数部として扱う必要があることをどこかで見つけました。

私はそれを実装しましたが、結果の画像が間違っていると思います。

レナックlenac_dft

誰かが私を助けてくれたら幸いです。

画像の読み取りと保存には、CImg ライブラリを使用します。

0 投票する
1 に答える
556 参照

c++ - 周波数範囲のある DFT

GSL の標準 DFT 実装を変更/再実装する必要があります。

この実装では、GSL はサンプル/入力サイズに対して入力ベクトルを 2 回繰り返します。ただし、異なる周波数ビンを構築する必要があります。たとえば、4096 個のサンプルがありますが、128 の異なる周波数について DFT を計算する必要があります。必要な DFT の動作を定義または実装するのを手伝ってもらえますか? 前もって感謝します。

m編集: 最初の周波数は検索しません。

実際、与えられた周波数ビン番号でDFT結果を見つけるための以下のアプローチは正しいですか? N = サンプル サイズ B = 頻度ビン サイズ

編集:DFTの問題を詳しく説明していない可能性がありますが、以下の回答を提供させていただきます:

0 投票する
0 に答える
1300 参照

image - JPEG符号化画像のブロックサイズの調べ方

dftでjpegエンコードした画像のブロックサイズを知りたいです。dft アルゴリズムを実装しました。dft には別の場所にスパイクがあります。アルゴリズムでは、ブロックサイズはそれらのスパイク位置の倍数になると言われています。画像のブロック サイズやスパイクの位置を特定する方法を教えてください。

0 投票する
1 に答える
318 参照

python - 3D DFT の実装時に結果を一致させることができない

3D DFT を実装しようとしていますが、問題が発生しています。私がすべきことは、各方向に 1 つずつ、3 つの連続した 1D DFT を実行することです。1D DFT が正しいと仮定すると、このコードの問題点がわかります。

Python にこれのバージョンが組み込まれていることは知っていますが、それらを使用することはできません。アルゴリズムと組み込みのアルゴリズムの結果を比較できるように、Python でアルゴリズムをテストしているだけです。私が知る限り、1D と 2D の両方の変換で問題なく動作しましたが、3D に拡張すると、結果が一致しなくなりました。誰が何が悪いのか知っていますか?

0 投票する
2 に答える
7743 参照

c - OpenCVおよびFFTW3ライブラリを使用して画像の離散フーリエスペクトル(DFT)を表示する方法は?

単純な画像のフーリエスペクトルを生成しようとしています。しかし、私が得るのはノイズだけです。間の値を縮小することを提案する多くのリンクをたどろうとしました[0, 255]が、このように拡大縮小した後でも、黒い画像しか表示されません。

スケーリングコード:

dft配列の最初の値は大きすぎるため(DC値であるため)、取得していないことに注意してください。つまりk=1、上のforloop画像から始めています。

後でスケーリングのためにこれを行います

スケーリングなしのコード:

出力: 上記のコードを使用するとノイズのみが発生します

しかし、私がそのようなスケーリングを導入した場合:スケーリング 後のコード

スケーリング後の出力 スケーリング後

私が間違っていることを教えてください。そして、画像の正しいスペクトルを得るために、どのようにスケーリングを行うと思いますか。

0 投票する
1 に答える
13318 参照

image - OpenCVでガウスフィルタをDFT出力に適用する方法

正しいパディング サイズを決定した後、ガウス ハイパス フィルターを作成したいと考えています (たとえば、画像の幅と高さが 10X10 の場合、20X20 にする必要があります)。

OpenCV に移植しようとしている Matlab コードがありますが、適切に移植するのが困難です。私のMatlabコードは以下のとおりです:

OpenCV で DFT を使用する方法を知っており、そのイメージを生成できますが、ガウス フィルターを作成する方法がわかりません。上記のようなハイパス ガウス フィルターを作成する方法を教えてください。

0 投票する
1 に答える
6397 参照

c++ - OpenCV の空間ドメインへの DFT が機能しない

画像の dft を作成しました。フィルターを使用して調整した後、実際の画像に変換したいのですが、そのたびに間違った結果が得られます..元に変換していないようです。 ForierTransformそしてcreateGaussianHighPassFilter、実際の画像に戻すために以下のように使用しているコードの残りの部分は、私自身の関数です。

フィルターを適用しなくても、dft結果を元に戻すことはできません...これが私のdftコードです.dftを通常の画像に戻すサンプルが見つかりませんでした..

親切に助けて

[編集: メバトロンの助けを借りて解決策を見つけた後] (以下は正しいコードです)

指の隆起谷を表示できるようになり、しきい値に関してもより最適化できるようになりました

0 投票する
3 に答える
1177 参照

c# - AForge.Math の DFT が機能しないのはなぜですか?

次のコードを使用して、fft を取得してから、波の dft を取得しようとしました。

SourceToDouble(s):

ToPowerOfTwo(ref source):

DoubleToComplex(source):

DoPlaySound(sou):

問題はこれです: 一般的なコードに wav ファイルを与えると、メソッドは最終的な wav (tmp.wav) を再生しようとしますが、一般的なファイルとは異なります。

更新 1:

私も試してみFourierTransform.DFT(sou, FourierTransform.Direction.Backward);ましたが、うまくいきませんでした!