6.20. Afronding

Dit hoofdstuk behandelde de delen van numpy en scipy waar een OpenMV-toepassing naar grijpt wanneer een bewerking geen ingebouwde methode in de afbeeldingsbibliotheek heeft:

  • Concepten – wat een ndarray is, waarom een gepakte getypeerde buffer een Python-list verslaat voor numeriek werk, en de dtype-set die de camera ondersteunt.

  • Vorm en indexering – views vs. kopieën, slice-toewijzing voor allocatievrije updates, transpose() als een descriptorbewerking.

  • Wiskunde – elementgewijze operatoren, universele functies zoals sin(), broadcasting-regels, reducties zoals mean(), en selectiehulpfuncties zoals where().

  • Lineaire algebradot() voor matrixvermenigvuldiging, inv() / det() voor de inverse, en de decomposities en solvers onder numpy.linalg en scipy.linalg voor problemen met meer structuur.

  • Signaalverwerkingfft(), sosfilt() voor digitaal filteren, en spectrogram() voor allocatievrije magnitudespectra in een streaming-lus.

  • Curves en integratieinterp(), polyfit() / polyval(), convolve() voor korte FIR-filters, trapz() voor trapeziumintegratie van bemonsterde data.

  • Solvers en willekeurige getallenscipy.integrate voor kwadratuur van een Python-callable, scipy.optimize voor het vinden van wortels en minimaliseren, scipy.special voor statistische speciale functies, en Generator voor pseudo-willekeurige bemonstering.

  • Afbeeldingen – de brug via to_ndarray() en image.Image voor de zeldzame gevallen die de afbeeldingsbibliotheek niet dekt.

  • Prestaties – kleine dtypes, vooraf gealloceerde buffers, in-place operatoren, out=-trefwoorden, en uitkijken voor boolean-mask-churn in streaming-lussen.

Dat dekt het generieke numerieke werk waar de rest van de camera op leunt. numpy is de gereedschapskist waar een toepassing in grijpt wanneer een bewerking geen ingebouwde methode op Image heeft – een aangepaste pixeltransformatie, een kalibratie-oplossing, een FFT van gebufferde audio.