6.20. Podsumowanie

Rozdział omówił te części numpy i scipy, po które sięga aplikacja OpenMV, gdy dana operacja nie ma wbudowanej metody w bibliotece obrazów:

  • Pojęcia – czym jest ndarray, dlaczego upakowany bufor typowany przewyższa Pythonową list w pracy numerycznej oraz jaki zestaw typów danych obsługuje kamera.

  • Kształt i indeksowanie – widoki kontra kopie, przypisanie wycinka dla aktualizacji bez alokacji, transpose() jako edycja deskryptora.

  • Matematyka – operatory elementarne, funkcje uniwersalne takie jak sin(), reguły rozgłaszania, redukcje takie jak mean() oraz funkcje pomocnicze do selekcji takie jak where().

  • Algebra liniowadot() do mnożenia macierzy, inv() / det() do odwracania oraz rozkłady i solwery z numpy.linalg i scipy.linalg dla problemów o większej strukturze.

  • Przetwarzanie sygnałówfft(), sosfilt() do filtrowania cyfrowego oraz spectrogram() do widm modułu bez alokacji w pętli strumieniowej.

  • Krzywe i całkowanieinterp(), polyfit() / polyval(), convolve() do krótkich filtrów FIR, trapz() do całkowania metodą trapezów danych próbkowanych.

  • Solwery i liczby losowescipy.integrate do kwadratury obiektu wywoływalnego Pythona, scipy.optimize do wyznaczania miejsc zerowych i minimalizacji, scipy.special do statystycznych funkcji specjalnych oraz Generator do próbkowania pseudolosowego.

  • Obrazy – pomost to_ndarray() i image.Image dla rzadkich przypadków, których biblioteka obrazów nie obejmuje.

  • Wydajność – małe typy danych, wstępnie przydzielone bufory, operatory działające w miejscu, argumenty kluczowe out= oraz uważanie na zamęt związany z maskami logicznymi w pętlach strumieniowych.

To obejmuje ogólną pracę numeryczną, na której opiera się reszta kamery. numpy jest skrzynką narzędziową, do której sięga aplikacja, gdy dana operacja nie ma wbudowanej metody w Image – własna transformacja pikseli, rozwiązanie kalibracji, FFT buforowanego dźwięku.