v2.6.0¶
v2.6.0 werkt de kern bij naar MicroPython 1.9.2, schakelt find_line_segments() over op het LSD-algoritme, voegt ondersteuning toe voor de MT9V034 global-shutter-sensor, image.rotation_corr() perspectiefcorrectie, sensor.sleep(), het opslaan van ruwe afbeeldingen en de basis voor het OpenMV 4-board. find_line_segments(), diverse framesizes en het gedrag van MicroPython zijn gewijzigd — lees de breaking changes hieronder.
Hoogtepunten¶
MicroPython 1.9.2 kernupdate.
LSD-lijnsegmenten —
find_line_segments()gebruikt nu het Line Segment Detector-algoritme.MT9V034 ondersteuning voor global-shutter-sensor.
image.rotation_corr()— X/Y/Z perspectiefrotatiecorrectie.sensor.sleep()soft-sleepmodus en het opslaan van ruwe (ongecomprimeerde) afbeeldingen.Breaking: de parameters van
find_line_segments(), diverse framesize-constanten en het gedrag van MicroPython zijn gewijzigd — zie de breaking changes.
Nieuwe functies¶
image.rotation_corr()— X/Y/Z perspectiefrotatiecorrectie toegevoegd met eenrotation_correction.py-voorbeeld.sensor.sleep(enable)— zet de camera in een soft-sleepmodus (met een voorbeeld van de sleepmodus).Ruwe afbeeldingen —
image.save()kan nu ruwe (ongecomprimeerde) afbeeldingen wegschrijven.MT9V034 — ondersteuning voor global-shutter-sensor toegevoegd, met de constante
sensor.MT9V034.Een
lens_correction.py-voorbeeld toegevoegd voorimage.lens_corr()en ondersteuningsbestanden voor het OpenMV 4-board (basis voor boardconfiguratie / bootloader / linker).
Overige wijzigingen en verbeteringen¶
De meegeleverde MicroPython bijgewerkt naar 1.9.2 (1.9 port-plumbing, oofatfs);
find_line_segments.pyherschreven voor de nieuwe LSD-API (lenscorrectie standaard uit); de host-sideopenmv-API bijgewerkt (init(portname)/exec_script/stop_script); de sensorklok van de OpenMV Cam M4 verlaagd (lagere max FPS op de M4); de Stop-knop van de IDE gebruikt nu een harde geforceerde exception om scripts betrouwbaarder te onderbreken.
Bugfixes¶
image.lens_corr()liet verouderde pixels achter (de doelbuffer wordt nu gewist vóór het remappen) gecorrigeerd,blob.density()gebruikte integerdeling (gaf altijd 0 terug, #268), de UART-pinmapping van de OpenMV 2 (M4), enqrcodes_with_lens_corr.pybijgewerkt om QVGA te gebruiken.
Hardware- en boardondersteuning¶
MT9V034 global-shutter-sensor.
OpenMV 4 — boardondersteuningsbestanden (basis).
OpenMV 2 (M4) — correctie van de UART-pinmapping.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breaks tussen v2.5.0 en v2.6.0. Scope: Python C-modules in modules/ en Python-libraries in scripts/libraries/.
Elke wijziging is voorzien van een label met de impact ervan:
major — treft de meeste scripts die de functie gebruikten; je zult code moeten porten.
minor — beperkte API; treft alleen scripts die deze gebruikten.
behavior — dezelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, spring dan naar de migratiechecklist aan het eind. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
find_line_segments() overgeschakeld naar LSD (major)¶
image.find_line_segments() is herschreven om het Line Segment Detector (LSD)-algoritme te gebruiken. De oude parameters threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride zijn vervangen door merge_distance en max_theta_diff (bijv. find_line_segments(merge_distance=0, max_theta_diff=15)). De functie is ook niet langer beschikbaar op boards van de M4-klasse (OpenMV 2).
Ongeldige framesize-constanten verwijderd (minor)¶
De ongeldige framesize-constanten sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA zijn verwijderd (#261). Scripts die deze gebruiken moeten overschakelen naar een ondersteunde resolutie.
Commits: 35ab0a26f
find_qrcodes() verwijderd op de OpenMV Cam M4 (minor)¶
image.find_qrcodes() wordt niet langer mee-gecompileerd op boards van de M4-klasse (OpenMV 2). Gebruik een OpenMV 3 (M7)-board of een andere codefunctie voor QR-detectie op M4-hardware. Andere boards zijn niet getroffen.
Commits: 7dff089e6
MicroPython bijgewerkt naar 1.9.2 (behavior)¶
De meegeleverde MicroPython-kern is bijgewerkt naar 1.9.2. Het gedrag van de standaardbibliotheek en de taal volgt upstream MicroPython 1.9.2 — controleer scripts die afhankelijk zijn van versiespecifiek gedrag opnieuw. In het bijzonder werpt een image-slice met een andere stap dan 1 nu OSError op in plaats van NotImplementedError.
Commits: 11bed4b99
Migratiechecklist¶
Voor een schone port naar v2.6.0 is het gebruikelijke werk:
Herschrijf
find_line_segments()-aanroepen voor de LSD-parameters (merge_distance/max_theta_diff) en verplaats die verwerking van de M4 af (de LSD-herziening).Vervang verwijderde framesize-constanten door een ondersteunde resolutie (de framesize-verwijdering).
Verplaats QR-codedetectie op de M4 naar een M7-board (de find_qrcodes-wijziging).
Valideer versiespecifiek gedrag opnieuw tegen MicroPython 1.9.2 (de MicroPython-update).
Alle overige scripts draaien ongewijzigd.