6.20. Riepilogo¶
Il capitolo ha coperto le parti di numpy e scipy a cui un’applicazione OpenMV ricorre quando un’operazione non ha un metodo integrato nella libreria immagini:
Concetti – cos’è un
ndarray, perché un buffer tipizzato compatto batte unalistPython per il lavoro numerico, e l’insieme di dtype che la camera supporta.Forma e indicizzazione – viste vs. copie, assegnazione tramite slice per aggiornamenti senza allocazione,
transpose()come modifica di descrittore.Matematica – operatori elemento per elemento, funzioni universali come
sin(), regole di broadcasting, riduzioni comemean(), e funzioni di selezione comewhere().Algebra lineare –
dot()per il prodotto matriciale,inv()/det()per l’inversa, e le decomposizioni e i risolutori sottonumpy.linalgescipy.linalgper problemi con più struttura.Elaborazione dei segnali –
fft(),sosfilt()per il filtraggio digitale, espectrogram()per spettri di magnitudine senza allocazione in un loop in streaming.Curve e integrazione –
interp(),polyfit()/polyval(),convolve()per brevi filtri FIR,trapz()per l’integrazione trapezoidale di dati campionati.Risolutori e numeri casuali –
scipy.integrateper la quadratura di una funzione richiamabile Python,scipy.optimizeper la ricerca di radici e la minimizzazione,scipy.specialper le funzioni speciali statistiche, eGeneratorper il campionamento pseudo-casuale.Immagini – il ponte
to_ndarray()eimage.Imageper i rari casi che la libreria immagini non copre.Prestazioni – dtype piccoli, buffer pre-allocati, operatori in-place, parole chiave
out=, e attenzione al churn delle maschere booleane nei loop in streaming.
Questo copre il lavoro numerico generico su cui il resto della camera si appoggia. numpy è la cassetta degli attrezzi a cui un’applicazione attinge quando un’operazione non ha un metodo integrato su Image – una trasformazione personalizzata dei pixel, una risoluzione di calibrazione, una FFT di audio bufferizzato.