畳み込み関数の使用¶

概要¶

二つの畳み込み関数が提供されています。 それらは次のようにインポートされます:

>>> from astropy.convolution import convolve, convolve_fft

そして両方として使用されます:

>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel) 

convolve()convolve_fft()は高速FourierTransform(FFT)を使用していますが、adirect畳み込みアルゴリズムとして実装されています。 したがって、前者は小さなカーネルの方が優れていますが、後者はより大きなカーネルの方がはるかに効率的です。

入力イメージとカーネルは、1,2、または3次元のいずれかを持つlistsまたはnumpy配列でなければなりません(次元の数はtheimageとkernelで同じでなければなりません)。 結果は、入力イメージと同じ次元のnumpy配列です。 畳み込みは常に浮動小数点として行われます。

convolve()関数は、配列のエッジで畳み込みを実行する方法を記述するオプションのboundary=引数を取ります。 boundaryの値は次のようになります:

  • None: 結果の値をゼロに設定し、カーネルが配列のエッジを超えて拡張されます(デフォルト)。

  • 'fill': 配列境界の外側の値を定数に設定します。 Thisoptionが指定されている場合、定数はfill_value=引数を使用して指定する必要があります。

  • 'wrap': 境界が周期的であると仮定します。

  • 'extend' : 配列の外側の値を最も近い配列値に設定します。

デフォルトでは、カーネルは正規化されません。 畳み込みの前に正規化するには、次を使用します:

>>> result = convolve(image, kernel, normalize_kernel=True) 

You might also like

コメントを残す

メールアドレスが公開されることはありません。