6.20. Sažetak

Ovo poglavlje obradilo je dijelove modula numpy i scipy za kojima OpenMV aplikacija poseže kada operacija nema ugrađenu metodu u biblioteci za slike:

  • Koncepti – što je ndarray, zašto je zbijeni tipizirani međuspremnik bolji od Python list za numerički rad te skup dtypeova koje kamera podržava.

  • Oblik i indeksiranje – pogledi naspram kopija, dodjela preko isječka za ažuriranja bez dodjele memorije, transpose() kao uređivanje deskriptora.

  • Matematika – operatori po elementima, univerzalne funkcije poput sin(), pravila emitiranja (broadcasting), redukcije poput mean() i pomoćnici za odabir poput where().

  • Linearna algebradot() za množenje matrica, inv() / det() za inverz te dekompozicije i rješavači pod numpy.linalg i scipy.linalg za probleme s više strukture.

  • Obrada signalafft(), sosfilt() za digitalno filtriranje i spectrogram() za spektre magnitude bez dodjele memorije u petlji za tok podataka.

  • Krivulje i integracijainterp(), polyfit() / polyval(), convolve() za kratke FIR filtre, trapz() za trapeznu integraciju uzorkovanih podataka.

  • Rješavači i slučajni brojeviscipy.integrate za kvadraturu Python pozivne funkcije, scipy.optimize za pronalaženje korijena i minimizaciju, scipy.special za statističke specijalne funkcije i Generator za pseudoslučajno uzorkovanje.

  • Slike – most to_ndarray() i image.Image za rijetke slučajeve koje biblioteka za slike ne pokriva.

  • Performanse – mali dtypeovi, unaprijed dodijeljeni međuspremnici, operatori na mjestu, ključne riječi out= i pripaza na previranje boolean maski u petljama za tok podataka.

Time je pokriven generički numerički posao na koji se oslanja ostatak kamere. numpy je alatni okvir u koji aplikacija poseže kada operacija nema ugrađenu metodu na Image – prilagođena pikselska transformacija, izračun kalibracije, FFT međuspremljenog zvuka.