6.20. Shrnutí

Tato kapitola pokryla ty části numpy a scipy, po kterých OpenMV aplikace sáhne, když operace nemá vestavěnou metodu v obrazové knihovně:

  • Koncepty – co je ndarray, proč zabalený typovaný buffer poráží Python list pro numerickou práci a sada dtypů, kterou kamera podporuje.

  • Tvar a indexování – pohledy vs. kopie, přiřazení do řezu pro aktualizace bez alokace, transpose() jako úprava deskriptoru.

  • Matematika – operátory po prvcích, univerzální funkce jako sin(), pravidla broadcastingu, redukce jako mean() a pomocné funkce pro výběr jako where().

  • Lineární algebradot() pro násobení matic, inv() / det() pro inverzi a rozklady a řešiče v numpy.linalg a scipy.linalg pro problémy s větší strukturou.

  • Zpracování signálůfft(), sosfilt() pro digitální filtrování a spectrogram() pro spektra velikostí bez alokace ve streamovací smyčce.

  • Křivky a integraceinterp(), polyfit() / polyval(), convolve() pro krátké FIR filtry, trapz() pro lichoběžníkovou integraci vzorkovaných dat.

  • Řešiče a náhodná číslascipy.integrate pro kvadraturu volatelné Python funkce, scipy.optimize pro hledání kořenů a minimalizaci, scipy.special pro statistické speciální funkce a Generator pro pseudonáhodné vzorkování.

  • Obrazy – můstek to_ndarray() a image.Image pro vzácné případy, které obrazová knihovna nepokrývá.

  • Výkon – malé dtypy, předem alokované buffery, operátory na místě, klíčové argumenty out= a pozor na zbytečné vytváření boolovských masek ve streamovacích smyčkách.

Tím je pokryta obecná numerická práce, o kterou se opírá zbytek kamery. numpy je sada nástrojů, do které aplikace sáhne, když operace nemá vestavěnou metodu v Image – vlastní transformace pixelů, kalibrační výpočet, FFT bufferovaného zvuku.