v2.6.0

v2.6.0 aktualizuje jádro na MicroPython 1.9.2, přepíná find_line_segments() na algoritmus LSD, přidává podporu senzoru MT9V034 s globální závěrkou, perspektivní korekci image.rotation_corr(), sensor.sleep(), ukládání surových obrazů a základ pro desku OpenMV 4. Změnilo se chování find_line_segments(), několika formátů snímku a MicroPythonu — přečtěte si nekompatibilní změny níže.

Hlavní novinky

  • Aktualizace jádra na MicroPython 1.9.2.

  • LSD úsečkyfind_line_segments() nyní používá algoritmus Line Segment Detector.

  • Podpora senzoru MT9V034 s globální závěrkou.

  • image.rotation_corr() — perspektivní korekce rotace v osách X/Y/Z.

  • sensor.sleep() měkký režim spánku a ukládání surových (nekomprimovaných) obrazů.

  • Nekompatibilní: změnily se parametry find_line_segments(), několik konstant formátu snímku a chování MicroPythonu — viz nekompatibilní změny.

Nové funkce

  • image.rotation_corr() — přidána perspektivní korekce rotace v osách X/Y/Z s příkladem rotation_correction.py.

  • sensor.sleep(enable) — uvede kameru do měkkého režimu spánku (s příkladem režimu spánku).

  • Surové obrazyimage.save() nyní umí zapisovat surové (nekomprimované) obrazy.

  • MT9V034 — přidána podpora senzoru s globální závěrkou, zpřístupňující konstantu sensor.MT9V034.

  • Přidán příklad lens_correction.py pro image.lens_corr() a podpůrné soubory pro desku OpenMV 4 (konfigurace desky / bootloader / základ linkeru).

Další změny a vylepšení

  • Aktualizován přibalený MicroPython na 1.9.2 (propojení portu 1.9, oofatfs); přepsán find_line_segments.py pro nové LSD API (korekce objektivu ve výchozím stavu vypnuta); aktualizováno hostitelské openmv API (init(portname) / exec_script / stop_script); snížen hodinový takt senzoru u OpenMV Cam M4 (nižší maximální FPS na M4); tlačítko Stop v IDE nyní pro spolehlivější přerušení skriptů používá tvrdě vynucenou výjimku.

Opravy chyb

  • Opraveno: image.lens_corr() ponechával zastaralé pixely (cílový buffer se nyní před přemapováním vyčistí), blob.density() používal celočíselné dělení (vždy vracelo 0, #268), mapování pinů UART na OpenMV 2 (M4) a aktualizace qrcodes_with_lens_corr.py na použití QVGA.

Hardware a podpora desek

  • Senzor MT9V034 s globální závěrkou.

  • OpenMV 4 — podpůrné soubory pro desku (základ).

  • OpenMV 2 (M4) — oprava mapování pinů UART.

Nekompatibilní změny API

Uživatelsky viditelné nekompatibilní změny API mezi v2.5.0 a v2.6.0. Rozsah: Python C-moduly v modules/ a knihovny Pythonu v scripts/libraries/.

Každá změna je označena svým dopadem:

  • major — ovlivňuje většinu skriptů, které funkci používaly; budete muset přizpůsobit kód.

  • minor — úzké API; ovlivňuje pouze skripty, které jej používaly.

  • behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.

Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přizpůsobit svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.

find_line_segments() přešel na LSD (major)

image.find_line_segments() byl přepsán tak, aby používal algoritmus Line Segment Detector (LSD). Staré parametry threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride byly nahrazeny parametry merge_distance a max_theta_diff (např. find_line_segments(merge_distance=0, max_theta_diff=15)). Také již není dostupný na deskách třídy M4 (OpenMV 2).

Commity: 5a3153c8b, cbe2a4aeb

Neplatné konstanty formátu snímku odstraněny (minor)

Neplatné konstanty formátu snímku sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA byly odstraněny (#261). Skripty, které je používají, musí přejít na podporované rozlišení.

Commity: 35ab0a26f

find_qrcodes() odstraněn na OpenMV Cam M4 (minor)

image.find_qrcodes() se již nekompiluje na deskách třídy M4 (OpenMV 2). Pro detekci QR kódů na hardwaru M4 použijte desku OpenMV 3 (M7) nebo jinou funkci kódu. Ostatní desky nejsou ovlivněny.

Commity: 7dff089e6

MicroPython aktualizován na 1.9.2 (behavior)

Přibalené jádro MicroPythonu bylo aktualizováno na 1.9.2. Chování standardní knihovny a jazyka se řídí upstreamovým MicroPythonem 1.9.2 — znovu zkontrolujte skripty, které závisí na chování specifickém pro danou verzi. Zejména řez obrazu s krokem jiným než 1 nyní vyvolá OSError místo NotImplementedError.

Commity: 11bed4b99

Kontrolní seznam migrace

Pro čistý přechod na v2.6.0 je obvyklá práce následující:

  1. Přepište volání find_line_segments() na LSD parametry (merge_distance / max_theta_diff) a přesuňte toto zpracování mimo M4 (přepracování LSD).

  2. Nahraďte odstraněné konstanty formátu snímku podporovaným rozlišením (odstranění formátů snímku).

  3. Přesuňte detekci QR kódů z M4 na desku M7 (změna find_qrcodes).

  4. Znovu ověřte chování specifické pro verzi vůči MicroPythonu 1.9.2 (aktualizace MicroPythonu).

Všechny ostatní skripty běží beze změny.