v2.8.0¶
v2.8.0 — масштабний реліз. Він додає підтримку OpenMV Cam H7 (STM32H7) з апаратним JPEG-кодувальником та H7 ADC/DAC, масштабне оновлення API image (товщина/заливка при малюванні, математичні/бінарні операції, багато нових фільтрів, порогування Оцу), підтримку потоків MicroPython та модуль версій omv. Порядок розбору аргументів Python зафіксовано, а image.mask_ellipse() видалено — ознайомтеся зі змінами, що порушують сумісність, нижче.
Основні зміни¶
OpenMV Cam H7 — нова плата STM32H7 з апаратним JPEG-кодувальником та H7 ADC / DAC.
image— оновлення: товщина ліній, заливка фігур,draw_arrow()/draw_image(), повний набір математичних/бінарних операцій та багато нових фільтрів.Порогування Оцу —
histogram.get_threshold()та об’єктThreshold.Потоки — підтримка
_threadу MicroPython.Модуль
omv— інформація про версію / плату.Зміна сумісності: порядок позиційних аргументів Python тепер суворо фіксований, а
image.mask_ellipse()видалено — дивіться розділ про зміни, що порушують сумісність.
Нові можливості¶
OpenMV Cam H7 — підтримка плати STM32H7 з апаратним JPEG-кодувальником, H7 ADC та H7 DAC.
Малювання — додано товщину ліній (
thickness), заливку фігурfill(прямокутник / коло), масштабування текстуscale/ кернінг, ключове словоmono_spaceуdraw_string(),image.draw_arrow()таimage.draw_image()(малювання спрайтів / масок).Математичні операції — додано
add(),sub(),mul(),div(),min(),max(),difference(),blend(),replace()(зhmirror/vflip/mask) таremove_shadows(); базові операції тепер приймають скалярне/кольорове значення, що застосовується до всіх пікселів.Бінарні / морфологічні операції — новий тип бінарного зображення та
binary(); операції над рядками таerode()/dilate()приймають маски; доданоopen()/close()/top_hat()/black_hat().Фільтри — додано
cartoon,flood_fill,bilateral,laplacian, псевдонімиblur/gaussian_blurта адаптивне вирівнювання гістограми (histeq(adaptive=, clip_limit=, mask=)).Статистика —
get_statistics()/get_histogram()приймають список порогів кольору таinvert; додано порогування Оцуhistogram.get_threshold()та об’єктThreshold.CMSIS CNN — додано
image.classify_object()з прикладомcnn.py(замінено модулемnnу версії v3.0.0).Потоки — увімкнено модуль MicroPython
_thread.Модуль
omv— додано інформацію про версію (version_string,arch,board_type,board_id); увімкнено шинуmachineI2C4 та спеціальні математичні функції (erf,gamma, …); додано приклади для motor-shield та багато нових скриптів.
Інші зміни та вдосконалення¶
Зовнішній тактовий сигнал датчика H7 знижено до 48 МГц (краща якість зображення, нижча частота кадрів); низька/висока якість JPEG тепер конфігурується для кожної плати (та налаштована для H7); додано конфігурацію ознак
imlib_config.hдля кожної плати (всі функції обробки зображень залишаються увімкненими у стандартній мікропрограмі); оновлено вбудований MicroPython.
Виправлення помилок¶
Обробка зображень:
Виправлено
image.save()без розширення файлу, відображенняgain_db/gain_db_ceilingдля OV2640 / OV7725 / OV9650 / MT9V034, надмірне підсилення уsharpen(), морфологічний крайовий шум, ділення на нуль в операції над зображенням та аварійне завершення через переповнення стеку при надто великому розмірі ядра фільтра (тепер виводиться чітке повідомлення про помилку).
Система:
Захищено USB VCP буфер атомарною секцією (пошкодження даних серійного порту, #313), виправлено підключення USB у Windows, монтування внутрішньої файлової системи флеш-пам’яті при збої SD-карти, значення PLLP у
cpufreqset_frequency()та помилку прошивки завантажувача.
Підтримка апаратного забезпечення та плат¶
OpenMV Cam H7 (STM32H7) — нова плата з апаратним JPEG-кодувальником та H7 ADC / DAC.
machine— увімкнено шину I2C4.
Зміни API, що порушують сумісність¶
Видимі для користувача зміни API між v2.7.0 та v2.8.0. Область застосування: Python C-модулі у modules/ та бібліотеки Python у scripts/libraries/.
Обидві зміни є незначними і стосуються лише скриптів, які використовують відповідну функцію. Кожен хеш коміту посилається на його diff на GitHub.
Порядок позиційних аргументів Python тепер суворо фіксований (незначна зміна)¶
Розбір аргументів у Python C-модулях (image / sensor / fir / gif / lcd / mjpeg) тепер читає позиційні аргументи перед ключовими та фіксує їхній порядок. У поєднанні з новими ключовими аргументами методів малювання (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() отримали thickness / fill / scale / size), код, який передавав параметри не в тому порядку позиційно — або передавав позиційний color після одного з нових аргументів — повинен використовувати ключові аргументи або задокументований позиційний порядок.
image.mask_ellipse() видалено (незначна зміна)¶
image.mask_ellipse() видалено. Скрипти, що її викликали, повинні видалити цей виклик або використовувати явну область інтересу (ROI) / зображення-маску.
Коміти: d7159fba3
Контрольний список міграції¶
Передавайте аргументи за ключовим словом (або в задокументованому позиційному порядку), особливо color у методах малювання (зміна порядку аргументів), та видаліть виклики image.mask_ellipse() (видалення mask_ellipse). Всі інші скрипти працюють без змін.