Konvoluutiofunktioiden käyttäminen¶

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) 

You might also like

Vastaa

Sähköpostiosoitettasi ei julkaista.