Visão geral¶
convolução de Duas funções são fornecidas. Eles são importados como:
>>> from astropy.convolution import convolve, convolve_fft
e são utilizados tanto como:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
é implementado como adirect algoritmo de convolução, enquantoconvolve_fft()
usa um Rápido FourierTransform (FFT). Assim, o primeiro é melhor para grãos pequenos, enquanto o latteris é muito mais eficiente para grãos maiores.
as imagens e kernels de entrada devem ser listas ou numpy
matrizes com 1,2 ou 3 dimensões (e o número de dimensões deve ser o mesmo para a imagem e núcleo). O resultado é um array numpy
com as mesmas dimensões que a imagem de entrada. A convolução é sempre feita como ponto flutuante.
a função convolve()
toma um argumento opcional boundary=
descrevendo como realizar a convolução na borda da matriz. Os valores para boundary
podem ser:
-
None
: defina os valores do resultado para zero onde o kernel se estende além do teedge do array (padrão). -
'fill'
: definir valores fora do limite da matriz para uma constante. Se esta opção for especificada, a constante deve ser especificada usando o argumentofill_value=
, que é igual a zero. -
'wrap'
: suponha que os limites são periódicos. -
'extend'
: definir os valores fora da matriz para o valor da matriz mais próximo.
por padrão, o kernel não está normalizado. Para normalizá-lo antes da convolução, use:
>>> result = convolve(image, kernel, normalize_kernel=True)