6.20. Sammanfattning¶
Detta kapitel täckte de delar av numpy och scipy som en OpenMV-applikation tar till när en operation inte har en inbyggd metod i bildbiblioteket:
Begrepp – vad en
ndarrayär, varför en packad typad buffert slår en Python-listför numeriskt arbete, och den uppsättning dtype:r som kameran stöder.Form och indexering – vyer kontra kopior, slice-tilldelning för allokeringsfria uppdateringar,
transpose()som en deskriptorredigering.Matematik – elementvisa operatorer, universella funktioner som
sin(), broadcasting-regler, reduktioner sommean(), och urvalshjälpare somwhere().Linjär algebra –
dot()för matrismultiplikation,inv()/det()för inversen, och dekompositionerna och lösarna undernumpy.linalgochscipy.linalgför problem med mer struktur.Signalbehandling –
fft(),sosfilt()för digital filtrering, ochspectrogram()för allokeringsfria magnitudspektra i en strömmande loop.Kurvor och integration –
interp(),polyfit()/polyval(),convolve()för korta FIR-filter,trapz()för trapetsintegration av samplad data.Lösare och slumptal –
scipy.integrateför kvadratur av en anropbar Python-funktion,scipy.optimizeför rotsökning och minimering,scipy.specialför statistiska specialfunktioner, ochGeneratorför pseudoslumpmässig sampling.Bilder – bryggan
to_ndarray()ochimage.Imageför de sällsynta fall där bildbiblioteket inte täcker behovet.Prestanda – små dtype:r, förallokerade buffertar, in-place-operatorer,
out=-nyckelord, och att hålla utkik efter omsättning av booleska masker i strömmande loopar.
Det täcker det generiska numeriska arbete som resten av kameran lutar sig mot. numpy är verktygslådan en applikation når in i när en operation inte har en inbyggd metod på Image – en anpassad pixeltransform, en kalibreringslösning, en FFT av buffrat ljud.