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-lijnsegmentenfind_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 een rotation_correction.py-voorbeeld.

  • sensor.sleep(enable) — zet de camera in een soft-sleepmodus (met een voorbeeld van de sleepmodus).

  • Ruwe afbeeldingenimage.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 voor image.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.py herschreven voor de nieuwe LSD-API (lenscorrectie standaard uit); de host-side openmv-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), en qrcodes_with_lens_corr.py bijgewerkt 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).

Commits: 5a3153c8b, cbe2a4aeb

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:

  1. 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).

  2. Vervang verwijderde framesize-constanten door een ondersteunde resolutie (de framesize-verwijdering).

  3. Verplaats QR-codedetectie op de M4 naar een M7-board (de find_qrcodes-wijziging).

  4. Valideer versiespecifiek gedrag opnieuw tegen MicroPython 1.9.2 (de MicroPython-update).

Alle overige scripts draaien ongewijzigd.