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-linjesegment —
find_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 ettrotation_correction.py-exempel.sensor.sleep(enable)— försätt kameran i ett mjukt viloläge (med ett exempel för viloläget).Råa bilder —
image.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örimage.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.pyför det nya LSD-API:et (linskorrigering avstängd som standard); uppdaterade värdsidansopenmv-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), attblob.density()använde heltalsdivision (returnerade alltid 0, #268), UART-stiftmappningen på OpenMV 2 (M4) och uppdateradeqrcodes_with_lens_corr.pytill 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).
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:
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).Ersätt borttagna bildstorlekskonstanter med en upplösning som stöds (borttagningen av bildstorlekar).
Flytta QR-koddetektering från M4 till ett M7-kort (find_qrcodes-ändringen).
Validera om versionsspecifikt beteende mot MicroPython 1.9.2 (MicroPython-uppgraderingen).
Alla andra skript körs oförändrade.