6.20. Підсумок

Розділ охопив частини numpy та scipy, до яких звертається застосунок OpenMV, коли операція не має вбудованого методу бібліотеки зображень:

  • Концепції – що таке ndarray, чому упакований типізований буфер перевершує list Python для числових обчислень, і набір типів даних, що підтримує камера.

  • Форма та індексування – представлення проти копій, присвоєння зрізу для оновлень без виділення пам’яті, transpose() як редагування дескриптора.

  • Математика – поелементні оператори, універсальні функції на кшталт sin(), правила мовлення, скорочення на кшталт mean(), та допоміжні функції вибору на кшталт where().

  • Лінійна алгебраdot() для множення матриць, inv() / det() для оберненої матриці, та розкладання й солвери в numpy.linalg та scipy.linalg для задач з більшою структурою.

  • Обробка сигналівfft(), sosfilt() для цифрової фільтрації, та spectrogram() для амплітудних спектрів без виділення пам’яті у потоковому циклі.

  • Криві та інтегруванняinterp(), polyfit() / polyval(), convolve() для коротких FIR-фільтрів, trapz() для трапецієподібного інтегрування дискретизованих даних.

  • Солвери та випадкові числаscipy.integrate для квадратури виклику Python, scipy.optimize для пошуку коренів та мінімізації, scipy.special для статистичних спеціальних функцій, та Generator для псевдовипадкової вибірки.

  • Зображення – міст to_ndarray() та image.Image для рідкісних випадків, коли бібліотека зображень не охоплює потрібну операцію.

  • Продуктивність – малі типи даних, попередньо виділені буфери, оператори на місці, ключові слова out=, та увага до витрат на булеві маски в потокових циклах.

Це охоплює загальну числову роботу, на яку спирається решта функціональності камери. numpy – це інструментарій, до якого звертається застосунок, коли операція не має вбудованого методу Image – нестандартне перетворення пікселів, солвер для калібрування, FFT буферизованого аудіо.