周波数領域で畳み込みを実装するにはどうすればよいですか?

user366312

2D整数配列として表されるビットマップ画像があるとします。int [,] image2D;そのFFTはComplex[,] fftImage2D;

2D整数配列として表されるカーネルがあり、int [,] kernel2D;そのFFTはComplex[,] fftKernel2D;

我々はそれを知っている、の(空間領域で)コンボリューションimage2Dとはkernel2D、だろう

int Rows = image2D.GetLength(0);
int Cols = image2D.GetLength(1);

for(int i=0 ; i<Rows ; i++)
{
    for(int j=0 ; j<Cols ; j++)
    {
        //sweep the kernel2D across image2D
        //...........................
    }
}

次のリンクはすべて、空間領域での畳み込みに関するものです。

http://www.codeproject.com/Articles/2008/Image-Processing-for-Dummies-with-C-and-GDI-Part http://www.gutgames.com/post/Matrix-Convolution-Filters-in -C.aspx https://softwarebydefault.com/2013/05/01/image-convolution-filters/

周波数領域での畳み込みは、との間の乗算にfftImage2DなりfftKernel2Dます。

どうすればこの乗算を行うことができますか?

Complex [,]異なる次元の2つのタイプ2D配列を乗算するにはどうすればよいですか?

SleuthEye

周波数領域で乗算を使用して線形畳み込みを実行するには、最初に2つの複雑な2D配列の次元が同じであることを確認する必要があります。これは、2つの空間ドメイン配列(image2Dおよびkernel2D)を同じサイズにパディングすることで実現できます巡回畳み込みではなく線形畳み込みを実行するには、空間ドメイン配列を(各次元に沿って)2つの配列次元の合計よりも少なくとも1つ少なくする必要があることに注意してください。

したがって、プロセスは次のようになります。

  • 埋め込まれた行数を計算します。 image2D.GetLength(0)+kernel2D.GetLength(0)-1
  • 埋め込まれた列数を計算します。 image2D.GetLength(1)+kernel2D.GetLength(1)-1
  • image2Dこの新しいサイズにパッド入れ、境界要素を繰り返します
  • kernel2Dこの新しいサイズにパッドを入れ、ゼロを埋めます
  • パッド付きのFFTを計算しimage2Dkernel2D
  • パッド付きfftImage2DfftKernel2D同じサイズの乗算を実行します
  • 逆FFTを計算する
  • オプションで、結果を元のimage2Dサイズに切り捨てます(これはkernel2D、完全な畳み込みに伴うエッジ効果なしでフィルター処理された画像を取得する場合にのみ必要です)。

サンプルの実装については、将来の読者は、私の回答で示した変更とともに、@ anonymousからのこの他の質問を見るかもしれません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

周波数領域で畳み込みを実装するにはどうすればよいですか?

分類Dev

1D畳み込みを使用して2D畳み込みを実現するにはどうすればよいですか?

分類Dev

Ubuntu14.04からHaswellUncore周波数を読み取るにはどうすればよいですか?

分類Dev

theanoで1D畳み込みを取得するにはどうすればよいですか

分類Dev

ケラに並列畳み込み層を作成するにはどうすればよいですか?

分類Dev

SVG画像要素に遅延読み込みを実装するにはどうすればよいですか?

分類Dev

畳み込みオートエンコーダを分割するにはどうすればよいですか?

分類Dev

Python:2つの連続分布の畳み込みを取得するにはどうすればよいですか?

分類Dev

畳み込み入力の形状/サイズを計算するにはどうすればよいですか?

分類Dev

matlabを使用してグラデーションで2D畳み込みを実行するにはどうすればよいですか?

分類Dev

Kerasで畳み込みLSTMを使用して位置推定を実現するにはどうすればよいですか?

分類Dev

3D畳み込み配列で最大プーリング操作を実行するにはどうすればよいですか?

分類Dev

畳み込み層ごとに変更された重みのみを設定するにはどうすればよいですか?

分類Dev

フーリエ変換を適用して、画像内の特定のエッジのみの周波数を抽出するにはどうすればよいですか?

分類Dev

UIImageを特定の領域にのみ拡大させるにはどうすればよいですか?

分類Dev

TensorFlowでCNNを構築する場合、使用する畳み込みフィルターを指定するにはどうすればよいですか?

分類Dev

SLES12でCPU周波数を最大に設定するにはどうすればよいですか?

分類Dev

SLES12でCPU周波数を最大に設定するにはどうすればよいですか?

分類Dev

Kubernetes構成マップをポッドの書き込み可能領域にコピーするにはどうすればよいですか?

分類Dev

matlabで周波数-時間配列を取得するにはどうすればよいですか?

分類Dev

`f64`のような組み込み型で可換(スカラー)乗算を実装するにはどうすればよいですか?

分類Dev

y軸に周波数値を表示するにはどうすればよいですか?

分類Dev

TensorFlowで激しい畳み込みの拡張率を動的に設定するにはどうすればよいですか?

分類Dev

複数の周波数プロットの色を変更するにはどうすればよいですか?

分類Dev

パンダの時間周波数を比較するにはどうすればよいですか?

分類Dev

Webカメラの電源周波数設定を変更するにはどうすればよいですか?

分類Dev

現在、FFTアレイの周波数を取得するにはどうすればよいですか?

分類Dev

畳み込み層pycaffeでbias_termをfalseに設定するにはどうすればよいですか?

分類Dev

周波数領域で畳み込みを手動で実行しているが、CPP / Opencvで間違った出力画像を取得している

Related 関連記事

  1. 1

    周波数領域で畳み込みを実装するにはどうすればよいですか?

  2. 2

    1D畳み込みを使用して2D畳み込みを実現するにはどうすればよいですか?

  3. 3

    Ubuntu14.04からHaswellUncore周波数を読み取るにはどうすればよいですか?

  4. 4

    theanoで1D畳み込みを取得するにはどうすればよいですか

  5. 5

    ケラに並列畳み込み層を作成するにはどうすればよいですか?

  6. 6

    SVG画像要素に遅延読み込みを実装するにはどうすればよいですか?

  7. 7

    畳み込みオートエンコーダを分割するにはどうすればよいですか?

  8. 8

    Python:2つの連続分布の畳み込みを取得するにはどうすればよいですか?

  9. 9

    畳み込み入力の形状/サイズを計算するにはどうすればよいですか?

  10. 10

    matlabを使用してグラデーションで2D畳み込みを実行するにはどうすればよいですか?

  11. 11

    Kerasで畳み込みLSTMを使用して位置推定を実現するにはどうすればよいですか?

  12. 12

    3D畳み込み配列で最大プーリング操作を実行するにはどうすればよいですか?

  13. 13

    畳み込み層ごとに変更された重みのみを設定するにはどうすればよいですか?

  14. 14

    フーリエ変換を適用して、画像内の特定のエッジのみの周波数を抽出するにはどうすればよいですか?

  15. 15

    UIImageを特定の領域にのみ拡大させるにはどうすればよいですか?

  16. 16

    TensorFlowでCNNを構築する場合、使用する畳み込みフィルターを指定するにはどうすればよいですか?

  17. 17

    SLES12でCPU周波数を最大に設定するにはどうすればよいですか?

  18. 18

    SLES12でCPU周波数を最大に設定するにはどうすればよいですか?

  19. 19

    Kubernetes構成マップをポッドの書き込み可能領域にコピーするにはどうすればよいですか?

  20. 20

    matlabで周波数-時間配列を取得するにはどうすればよいですか?

  21. 21

    `f64`のような組み込み型で可換(スカラー)乗算を実装するにはどうすればよいですか?

  22. 22

    y軸に周波数値を表示するにはどうすればよいですか?

  23. 23

    TensorFlowで激しい畳み込みの拡張率を動的に設定するにはどうすればよいですか?

  24. 24

    複数の周波数プロットの色を変更するにはどうすればよいですか?

  25. 25

    パンダの時間周波数を比較するにはどうすればよいですか?

  26. 26

    Webカメラの電源周波数設定を変更するにはどうすればよいですか?

  27. 27

    現在、FFTアレイの周波数を取得するにはどうすればよいですか?

  28. 28

    畳み込み層pycaffeでbias_termをfalseに設定するにはどうすればよいですか?

  29. 29

    周波数領域で畳み込みを手動で実行しているが、CPP / Opencvで間違った出力画像を取得している

ホットタグ

アーカイブ