v2.6.0¶
v2.6.0 оновлює ядро до MicroPython 1.9.2, перемикає find_line_segments() на алгоритм LSD, додає підтримку датчика з глобальним затвором MT9V034, корекцію перспективи image.rotation_corr(), sensor.sleep(), збереження необробленого зображення та основу для плати OpenMV 4. find_line_segments(), кілька розмірів кадру та поведінка MicroPython змінилися — ознайомтеся з критичними змінами нижче.
Основні можливості¶
Оновлення ядра MicroPython 1.9.2.
Сегменти ліній LSD —
find_line_segments()тепер використовує алгоритм детектора сегментів ліній.Підтримка датчика з глобальним затвором MT9V034.
image.rotation_corr()— корекція перспективного повороту по осях X/Y/Z.sensor.sleep()— режим м’якого сну та збереження необробленого (нестисненого) зображення.Критична зміна: параметри
find_line_segments(), кілька констант розміру кадру та поведінка MicroPython змінилися — див. критичні зміни.
Нові можливості¶
image.rotation_corr()— додано корекцію перспективного повороту по осях X/Y/Z з прикладомrotation_correction.py.sensor.sleep(enable)— переведення камери у режим м’якого сну (з прикладом режиму сну).Необроблені зображення —
image.save()тепер може записувати необроблені (нестиснені) зображення.MT9V034 — додано підтримку датчика з глобальним затвором, що надає константу
sensor.MT9V034.Додано приклад
lens_correction.pyдляimage.lens_corr()та файли підтримки плати OpenMV 4 (конфігурація плати / завантажувач / основа компонувальника).
Інші зміни та вдосконалення¶
Оновлено вбудований MicroPython до 1.9.2 (портування 1.9, oofatfs); переписано
find_line_segments.pyдля нового API LSD (корекція об’єктива вимкнена за замовчуванням); оновлено APIopenmvна стороні хосту (init(portname)/exec_script/stop_script); знижено тактову частоту датчика OpenMV Cam M4 (менша максимальна частота кадрів на M4); кнопка Stop в IDE тепер використовує жорстке примусове виключення для надійнішого переривання скриптів.
Виправлення помилок¶
Виправлено залишкові пікселі після
image.lens_corr()(буфер призначення тепер очищується перед перепроекцією),blob.density()з цілочисельним діленням (завжди повертав 0, #268), призначення виводів UART для OpenMV 2 (M4), а також оновленоqrcodes_with_lens_corr.pyдля використання QVGA.
Апаратне забезпечення та підтримка плат¶
MT9V034 — датчик з глобальним затвором.
OpenMV 4 — файли підтримки плати (основа).
OpenMV 2 (M4) — виправлення призначення виводів UART.
Критичні зміни API¶
Видимі для користувача зміни API між v2.5.0 та v2.6.0. Область застосування: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена відповідним рівнем впливу:
major (значний) — стосується більшості скриптів, що використовували функцію; потрібне портування коду.
minor (незначний) — вузький API; стосується лише скриптів, що безпосередньо його використовували.
behavior (поведінковий) — той самий API, інші результати; перевірте налаштовані скрипти.
Зміни згруповано за рівнем впливу у вказаному порядку. Якщо вам потрібно лише портувати код — перейдіть до контрольного списку міграції у кінці. Кожен хеш коміту посилається на його різницю на GitHub.
find_line_segments() перейшла на LSD (значна)¶
image.find_line_segments() була переписана для використання алгоритму детектора сегментів ліній (LSD). Старі параметри threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride замінено на merge_distance та max_theta_diff (наприклад, find_line_segments(merge_distance=0, max_theta_diff=15)). Також функція більше не доступна на платах класу M4 (OpenMV 2).
Видалено недійсні константи розміру кадру (незначна)¶
Недійсні константи розміру кадру sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA було видалено (#261). Скрипти, що їх використовують, повинні перейти на підтримувану роздільну здатність.
Коміти: 35ab0a26f
find_qrcodes() видалено для OpenMV Cam M4 (незначна)¶
image.find_qrcodes() більше не компілюється на платах класу M4 (OpenMV 2). Для виявлення QR-кодів на апаратному забезпеченні M4 використовуйте плату OpenMV 3 (M7) або іншу функцію коду. Інші плати не постраждали.
Коміти: 7dff089e6
MicroPython оновлено до 1.9.2 (поведінковий)¶
Вбудоване ядро MicroPython оновлено до 1.9.2. Поведінка стандартної бібліотеки та мови відповідає MicroPython 1.9.2 upstream — перевірте скрипти, які залежать від поведінки певної версії. Зокрема, зрізання зображення з кроком, відмінним від 1, тепер генерує OSError замість NotImplementedError.
Коміти: 11bed4b99
Контрольний список міграції¶
Для чистого портування до v2.6.0 типова робота включає:
Переписати виклики
find_line_segments()з параметрами LSD (merge_distance/max_theta_diff) та перенести цю обробку з M4 (переробка LSD).Замінити видалені константи розміру кадру підтримуваною роздільною здатністю (видалення розмірів кадру).
Перенести виявлення QR-кодів на M4 на плату M7 (зміна find_qrcodes).
Повторно перевірити поведінку, специфічну для версії, відповідно до MicroPython 1.9.2 (оновлення MicroPython).
Усі інші скрипти працюють без змін.