yleiskatsaus¶
kaksi konvoluutiofunktiota on annettu. Ne tuodaan:
>>> from astropy.convolution import convolve, convolve_fft
ja molempia käytetään:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
toteutetaan adirect konvoluution algoritmina, kun taasconvolve_fft()
käyttää nopeaa Fouriertransformia (FFT). Siten entinen on parempi pienille ytimille, kun taas latteris on paljon tehokkaampi suuremmille ytimille.
syötekuvien ja ytimien tulee olla luetteloita tai numpy
matriiseja, joissa on joko 1,2 tai 3 ulottuvuutta (ja ulottuvuuksien määrän on oltava sama kuvalle ja ytimelle). Tuloksena on numpy
array, jonka mitat ovat samat kuin syötekuvan. Konvoluutio tehdään aina liukulukuna.
convolve()
funktio vaatii anoptionaalisen boundary=
argumentin, joka kuvaa miten konvoluutio suoritetaan joukon reunalla. Arvot boundary
voivat olla:
-
None
: aseta tulosarvot nollaan, jos ydin ulottuu array (oletus). -
'fill'
: aseta arvot taulukon rajan ulkopuolella vakioon. Jos tämä vaihtoehto on määritetty, vakio on määritettävä käyttämällä argumenttiafill_value=
, jonka oletusarvo on nolla. -
'wrap'
: oletetaan, että rajat ovat jaksollisia. -
'extend'
: aseta arvot ulkopuolella array lähimpään array arvo.
oletuksena ydin ei ole normalisoitu. Normalisoidaksesi sen ennen konvoluutiota, käytä:
>>> result = convolve(image, kernel, normalize_kernel=True)