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čky —
find_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říklademrotation_correction.py.sensor.sleep(enable)— uvede kameru do měkkého režimu spánku (s příkladem režimu spánku).Surové obrazy —
image.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.pyproimage.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.pypro nové LSD API (korekce objektivu ve výchozím stavu vypnuta); aktualizováno hostitelskéopenmvAPI (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 aktualizaceqrcodes_with_lens_corr.pyna 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).
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í:
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).Nahraďte odstraněné konstanty formátu snímku podporovaným rozlišením (odstranění formátů snímku).
Přesuňte detekci QR kódů z M4 na desku M7 (změna find_qrcodes).
Znovu ověřte chování specifické pro verzi vůči MicroPythonu 1.9.2 (aktualizace MicroPythonu).
Všechny ostatní skripty běží beze změny.