6.20. Zusammenfassung

Das Kapitel behandelte die Teile von numpy und scipy, zu denen eine OpenMV-Anwendung greift, wenn eine Operation keine eingebaute Methode der Bildbibliothek hat:

  • Konzepte – was ein ndarray ist, warum ein gepackter typisierter Puffer für numerische Arbeit eine Python-list schlägt und welche dtype-Menge die Kamera unterstützt.

  • Form und Indizierung – Views vs. Kopien, Slice-Zuweisung für allokationsfreie Aktualisierungen, transpose() als Deskriptor-Bearbeitung.

  • Mathematik – elementweise Operatoren, universelle Funktionen wie sin(), Broadcasting-Regeln, Reduktionen wie mean() und Auswahlhilfen wie where().

  • Lineare Algebradot() für die Matrixmultiplikation, inv() / det() für die Inverse sowie die Zerlegungen und Solver unter numpy.linalg und scipy.linalg für Probleme mit mehr Struktur.

  • Signalverarbeitungfft(), sosfilt() für die digitale Filterung und spectrogram() für allokationsfreie Betragsspektren in einer Streaming-Schleife.

  • Kurven und Integrationinterp(), polyfit() / polyval(), convolve() für kurze FIR-Filter, trapz() für die Trapez-Integration abgetasteter Daten.

  • Solver und Zufallszahlenscipy.integrate für die Quadratur einer aufrufbaren Python-Funktion, scipy.optimize für Nullstellensuche und Minimierung, scipy.special für statistische spezielle Funktionen und Generator für pseudozufällige Stichproben.

  • Bilder – die Brücke to_ndarray() und image.Image für die seltenen Fälle, die die Bildbibliothek nicht abdeckt.

  • Leistung – kleine dtypes, vorab allokierte Puffer, In-place-Operatoren, out=-Schlüsselwörter und das Achten auf das Wiederholen von Boolean-Masken in Streaming-Schleifen.

Das deckt die generische numerische Arbeit ab, auf die sich der Rest der Kamera stützt. numpy ist der Werkzeugkasten, in den eine Anwendung greift, wenn eine Operation keine eingebaute Methode auf Image hat – eine benutzerdefinierte Pixeltransformation, eine Kalibrierungslösung, eine FFT von gepuffertem Audio.