v2.6.0

v2.6.0 uppdaterar kärnan till MicroPython 1.9.2, byter find_line_segments() till LSD-algoritmen, lägger till stöd för MT9V034 global-shutter-sensorn, image.rotation_corr() perspektivkorrigering, sensor.sleep(), sparande av råa bilder och grundläggande arbete för OpenMV 4-kort. find_line_segments(), flera bildstorlekar och MicroPythons beteende har ändrats — läs de brytande ändringarna nedan.

Höjdpunkter

  • Kärnuppdatering till MicroPython 1.9.2.

  • LSD-linjesegmentfind_line_segments() använder nu Line Segment Detector-algoritmen.

  • Stöd för MT9V034 global-shutter-sensorn.

  • image.rotation_corr() — perspektivrotationskorrigering för X/Y/Z.

  • sensor.sleep() mjukt viloläge och sparande av råa (okomprimerade) bilder.

  • Brytande: parametrarna för find_line_segments(), flera bildstorlekskonstanter och MicroPythons beteende har ändrats — se de brytande ändringarna.

Nya funktioner

  • image.rotation_corr() — perspektivrotationskorrigering för X/Y/Z tillagd med ett rotation_correction.py-exempel.

  • sensor.sleep(enable) — försätt kameran i ett mjukt viloläge (med ett exempel för viloläget).

  • Råa bilderimage.save() kan nu skriva råa (okomprimerade) bilder.

  • MT9V034 — stöd för global-shutter-sensorn tillagt, vilket exponerar konstanten sensor.MT9V034.

  • Lade till ett lens_correction.py-exempel för image.lens_corr() samt stödfiler för OpenMV 4-kort (grundläggande arbete för kortkonfiguration / startladdare / länkare).

Övriga ändringar och förbättringar

  • Uppdaterade den medföljande MicroPython till 1.9.2 (1.9-portens rörsystem, oofatfs); skrev om find_line_segments.py för det nya LSD-API:et (linskorrigering avstängd som standard); uppdaterade värdsidans openmv-API (init(portname) / exec_script / stop_script); sänkte sensorklockan på OpenMV Cam M4 (lägre max-FPS på M4:an); IDE:ns Stopp-knapp använder nu ett hårt framtvingat undantag för att avbryta skript mer tillförlitligt.

Buggfixar

  • Fixade att image.lens_corr() lämnade kvar inaktuella pixlar (målbufferten rensas nu före omkartläggning), att blob.density() använde heltalsdivision (returnerade alltid 0, #268), UART-stiftmappningen på OpenMV 2 (M4) och uppdaterade qrcodes_with_lens_corr.py till att använda QVGA.

Hårdvaru- och kortstöd

  • MT9V034 global-shutter-sensor.

  • OpenMV 4 — stödfiler för kortet (grundläggande arbete).

  • OpenMV 2 (M4) — fix av UART-stiftmappning.

Brytande API-ändringar

Användarsynliga API-brytningar mellan v2.5.0 och v2.6.0. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Varje ändring är märkt med sin påverkan:

  • major — påverkar de flesta skript som använde funktionen; du behöver porta kod.

  • minor — smalt API; påverkar endast skript som använde det.

  • behavior — samma API, andra resultat; kontrollera om finjusterade skript på nytt.

Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migrationschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.

find_line_segments() bytte till LSD (major)

image.find_line_segments() skrevs om till att använda Line Segment Detector-algoritmen (LSD). De gamla parametrarna threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride ersattes med merge_distance och max_theta_diff (t.ex. find_line_segments(merge_distance=0, max_theta_diff=15)). Den är inte heller längre tillgänglig på kort i M4-klass (OpenMV 2).

Commits: 5a3153c8b, cbe2a4aeb

Ogiltiga bildstorlekskonstanter borttagna (minor)

De ogiltiga bildstorlekskonstanterna sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA togs bort (#261). Skript som använder dessa måste byta till en upplösning som stöds.

Commits: 35ab0a26f

find_qrcodes() borttagen på OpenMV Cam M4 (minor)

image.find_qrcodes() kompileras inte längre in på kort i M4-klass (OpenMV 2). Använd ett OpenMV 3 (M7)-kort eller en annan kodfunktion för QR-detektering på M4-hårdvara. Övriga kort påverkas inte.

Commits: 7dff089e6

MicroPython uppdaterad till 1.9.2 (behavior)

Den medföljande MicroPython-kärnan uppdaterades till 1.9.2. Standardbibliotekets och språkets beteende följer MicroPython 1.9.2 uppströms — kontrollera på nytt skript som beror på versionsspecifikt beteende. Notera särskilt att en bildslice med ett steg som inte är 1 nu ger upphov till OSError istället för NotImplementedError.

Commits: 11bed4b99

Migrationschecklista

För en ren portning till v2.6.0 är det typiska arbetet:

  1. Skriv om anrop till find_line_segments() för LSD-parametrarna (merge_distance / max_theta_diff) och flytta den bearbetningen bort från M4:an (LSD-omarbetningen).

  2. Ersätt borttagna bildstorlekskonstanter med en upplösning som stöds (borttagningen av bildstorlekar).

  3. Flytta QR-koddetektering från M4 till ett M7-kort (find_qrcodes-ändringen).

  4. Validera om versionsspecifikt beteende mot MicroPython 1.9.2 (MicroPython-uppgraderingen).

Alla andra skript körs oförändrade.