v2.6.0¶
v2.6.0 actualizează nucleul la MicroPython 1.9.2, comută find_line_segments() la algoritmul LSD, adaugă suport pentru senzorul MT9V034 cu obturator global, corecția de perspectivă image.rotation_corr(), sensor.sleep(), salvarea imaginilor brute și bazele pentru plăcile OpenMV 4. find_line_segments(), mai multe dimensiuni de cadru și comportamentul MicroPython s-au modificat — citiți modificările incompatibile de mai jos.
Aspecte importante¶
Actualizarea nucleului la MicroPython 1.9.2.
Segmente de linie LSD —
find_line_segments()folosește acum algoritmul Line Segment Detector.Suport pentru senzorul MT9V034 cu obturator global.
image.rotation_corr()— corecția rotației de perspectivă pe axele X/Y/Z.sensor.sleep()mod de repaus software și salvarea imaginilor brute (necomprimate).Incompatibil: parametrii
find_line_segments(), mai multe constante de dimensiune a cadrului și comportamentul MicroPython s-au modificat — consultați modificările incompatibile.
Funcționalități noi¶
image.rotation_corr()— s-a adăugat corecția rotației de perspectivă pe axele X/Y/Z cu un exemplurotation_correction.py.sensor.sleep(enable)— pune camera într-un mod de repaus software (cu un exemplu de mod de repaus).Imagini brute —
image.save()poate acum scrie imagini brute (necomprimate).MT9V034 — s-a adăugat suport pentru senzorul cu obturator global, expunând constanta
sensor.MT9V034.S-a adăugat un exemplu
lens_correction.pypentruimage.lens_corr()și fișiere de suport pentru plăcile OpenMV 4 (bazele pentru configurarea plăcii / bootloader / linker).
Alte modificări și îmbunătățiri¶
S-a actualizat MicroPython inclus la 1.9.2 (infrastructura portului 1.9, oofatfs); s-a rescris
find_line_segments.pypentru noul API LSD (corecția obiectivului dezactivată implicit); s-a actualizat API-ulopenmvdin partea gazdei (init(portname)/exec_script/stop_script); s-a redus frecvența ceasului senzorului OpenMV Cam M4 (FPS maxim mai mic pe M4); butonul Stop din IDE folosește acum o excepție forțată hard pentru a întrerupe scripturile mai fiabil.
Remedieri de erori¶
S-a remediat
image.lens_corr()care lăsa pixeli învechiți (tamponul de destinație este acum curățat înainte de remapare),blob.density()care folosea împărțirea întreagă (returna întotdeauna 0, #268), maparea pinilor UART pentru OpenMV 2 (M4) și s-a actualizatqrcodes_with_lens_corr.pypentru a folosi QVGA.
Suport pentru hardware și plăci¶
Senzor MT9V034 cu obturator global.
OpenMV 4 — fișiere de suport pentru placă (baze).
OpenMV 2 (M4) — remedierea mapării pinilor UART.
Modificări incompatibile ale API-ului¶
Modificări incompatibile ale API-ului vizibile pentru utilizator între v2.5.0 și v2.6.0. Domeniu: modulele C Python din modules/ și bibliotecile Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
major — afectează majoritatea scripturilor care au folosit funcționalitatea; va trebui să adaptați codul.
minor — API restrâns; afectează doar scripturile care l-au folosit.
behavior — același API, rezultate diferite; reverificați scripturile reglate.
Modificările sunt grupate după impact în această ordine. Dacă vreți doar să adaptați codul, treceți la lista de verificare pentru migrare de la final. Fiecare hash de commit duce la diff-ul său pe GitHub.
find_line_segments() a trecut la LSD (major)¶
image.find_line_segments() a fost rescris pentru a folosi algoritmul Line Segment Detector (LSD). Vechii parametri threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride au fost înlocuiți cu merge_distance și max_theta_diff (de ex. find_line_segments(merge_distance=0, max_theta_diff=15)). De asemenea, nu mai este disponibil pe plăcile din clasa M4 (OpenMV 2).
Constantele de dimensiune a cadrului nevalide au fost eliminate (minor)¶
Constantele de dimensiune a cadrului nevalide sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA au fost eliminate (#261). Scripturile care le folosesc trebuie să treacă la o rezoluție acceptată.
Commits: 35ab0a26f
find_qrcodes() eliminat pe OpenMV Cam M4 (minor)¶
image.find_qrcodes() nu mai este compilat pe plăcile din clasa M4 (OpenMV 2). Folosiți o placă OpenMV 3 (M7) sau o altă funcționalitate de cod pentru detectarea codurilor QR pe hardware-ul M4. Celelalte plăci nu sunt afectate.
Commits: 7dff089e6
MicroPython actualizat la 1.9.2 (behavior)¶
Nucleul MicroPython inclus a fost actualizat la 1.9.2. Comportamentul bibliotecii standard și al limbajului urmează versiunea upstream MicroPython 1.9.2 — reverificați scripturile care depind de comportamentul specific versiunii. Notabil, o secțiune de imagine cu un pas diferit de 1 generează acum OSError în loc de NotImplementedError.
Commits: 11bed4b99
Lista de verificare pentru migrare¶
Pentru o adaptare curată la v2.6.0, munca tipică este:
Rescrieți apelurile
find_line_segments()pentru parametrii LSD (merge_distance/max_theta_diff) și mutați acea procesare de pe M4 (refacerea LSD).Înlocuiți constantele de dimensiune a cadrului eliminate cu o rezoluție acceptată (eliminarea dimensiunilor de cadru).
Mutați detectarea codurilor QR de pe M4 pe o placă M7 (modificarea find_qrcodes).
Revalidați comportamentul specific versiunii față de MicroPython 1.9.2 (actualizarea MicroPython).
Toate celelalte scripturi rulează nemodificate.