v2.6.0

v2.6.0 ažurira jezgru na MicroPython 1.9.2, prebacuje find_line_segments() na LSD algoritam, dodaje podršku za MT9V034 global-shutter senzor, image.rotation_corr() korekciju perspektive, sensor.sleep(), spremanje sirovih slika te temelje za OpenMV 4 ploču. find_line_segments(), nekoliko veličina sličica i ponašanje MicroPythona su se promijenili — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • Ažuriranje jezgre na MicroPython 1.9.2.

  • LSD segmenti linijafind_line_segments() sada koristi algoritam Line Segment Detector.

  • Podrška za MT9V034 global-shutter senzor.

  • image.rotation_corr() — korekcija perspektivne rotacije po X/Y/Z osi.

  • sensor.sleep() meki način mirovanja i spremanje sirovih (nekomprimiranih) slika.

  • Narušava kompatibilnost: promijenili su se parametri find_line_segments(), nekoliko konstanti veličina sličica i ponašanje MicroPythona — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • image.rotation_corr() — dodana korekcija perspektivne rotacije po X/Y/Z osi s primjerom rotation_correction.py.

  • sensor.sleep(enable) — stavlja kameru u meki način mirovanja (s primjerom načina mirovanja).

  • Sirove slikeimage.save() sada može zapisivati sirove (nekomprimirane) slike.

  • MT9V034 — dodana podrška za global-shutter senzor, izlažući konstantu sensor.MT9V034.

  • Dodan je primjer lens_correction.py za image.lens_corr() te datoteke za podršku OpenMV 4 ploče (konfiguracija ploče / pokretač (bootloader) / temelji za linker).

Ostale promjene i poboljšanja

  • Priloženi MicroPython ažuriran je na 1.9.2 (instalacija porta 1.9, oofatfs); find_line_segments.py prepisan je za novi LSD API (korekcija leće isključena prema zadanim postavkama); ažuriran je openmv API na strani domaćina (init(portname) / exec_script / stop_script); snižen je takt senzora na OpenMV Cam M4 (niži maksimalni FPS na M4); gumb Stop u IDE-u sada koristi tvrdu prisilnu iznimku za pouzdaniji prekid skripti.

Ispravci grešaka

  • Ispravljeno je da image.lens_corr() ostavlja zastarjele piksele (odredišni međuspremnik sada se briše prije ponovnog mapiranja), da blob.density() koristi cjelobrojno dijeljenje (uvijek je vraćao 0, #268), mapiranje UART pinova na OpenMV 2 (M4) te je qrcodes_with_lens_corr.py ažuriran da koristi QVGA.

Podrška za hardver i ploče

  • MT9V034 global-shutter senzor.

  • OpenMV 4 — datoteke za podršku ploče (temelji).

  • OpenMV 2 (M4) — ispravak mapiranja UART pinova.

Promjene API-ja koje narušavaju kompatibilnost

Korisniku vidljiva narušavanja API-ja između v2.5.0 i v2.6.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena svojim utjecajem:

  • major — utječe na većinu skripti koje su koristile značajku; morat ćete prenijeti kod.

  • minor — uski API; utječe samo na skripte koje su ga koristile.

  • behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

Promjene su grupirane prema utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, prijeđite na kontrolni popis migracije na kraju. Svaki hash commita vodi na njegov diff na GitHubu.

find_line_segments() prebačen na LSD (major)

image.find_line_segments() prepisan je da koristi algoritam Line Segment Detector (LSD). Stari parametri threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride zamijenjeni su s merge_distance i max_theta_diff (npr. find_line_segments(merge_distance=0, max_theta_diff=15)). Također više nije dostupan na pločama klase M4 (OpenMV 2).

Commiti: 5a3153c8b, cbe2a4aeb

Uklonjene nevažeće konstante veličina sličica (minor)

Uklonjene su nevažeće konstante veličina sličica sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA (#261). Skripte koje ih koriste moraju prijeći na podržanu razlučivost.

Commiti: 35ab0a26f

find_qrcodes() uklonjen na OpenMV Cam M4 (minor)

image.find_qrcodes() više se ne kompilira na pločama klase M4 (OpenMV 2). Za detekciju QR kodova na M4 hardveru koristite OpenMV 3 (M7) ploču ili drugu značajku koda. Ostale ploče nisu pogođene.

Commiti: 7dff089e6

MicroPython ažuriran na 1.9.2 (behavior)

Priložena MicroPython jezgra ažurirana je na 1.9.2. Ponašanje standardne biblioteke i jezika slijedi službeni MicroPython 1.9.2 — ponovno provjerite skripte koje ovise o ponašanju specifičnom za verziju. Posebno, isječak slike s korakom različitim od 1 sada izaziva OSError umjesto NotImplementedError.

Commiti: 11bed4b99

Kontrolni popis migracije

Za čist prijenos na v2.6.0 tipičan posao je:

  1. Prepišite pozive find_line_segments() za LSD parametre (merge_distance / max_theta_diff) i premjestite tu obradu s M4 (prerada LSD-a).

  2. Zamijenite uklonjene konstante veličina sličica podržanom razlučivošću (uklanjanje veličina sličica).

  3. Premjestite detekciju QR kodova s M4 na M7 ploču (promjena find_qrcodes).

  4. Ponovno provjerite ponašanje specifično za verziju u odnosu na MicroPython 1.9.2 (prelazak na MicroPython).

Sve ostale skripte rade nepromijenjeno.