概要¶
二つの畳み込み関数が提供されています。 それらは次のようにインポートされます:
>>> 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)