v2.8.0

v2.8.0 je golemo izdanje. Pokreće OpenMV Cam H7 (STM32H7) s hardverskim JPEG koderom te H7 ADC/DAC, donosi veliku preradu image API-ja (debljina/ispune crtanja, matematičke/binarne operacije, mnogo novih filtara, Otsu pragiranje), MicroPython višedretvenost te modul verzije omv. Redoslijed parsiranja Python argumenata je fiksiran, a image.mask_ellipse() je uklonjen — pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • OpenMV Cam H7 — nova STM32H7 ploča s hardverskim JPEG koderom te H7 ADC / DAC.

  • Prerada image — debljina linije, ispune oblika, draw_arrow() / draw_image(), potpune matematičke/binarne operacije i mnogo novih filtara.

  • Otsu pragiranjehistogram.get_threshold() i Threshold objekt.

  • Višedretvenost — MicroPython _thread podrška.

  • omv modul — informacije o verziji / ploči.

  • Narušava kompatibilnost: redoslijed pozicijskih argumenata u Pythonu sada je strog, a image.mask_ellipse() je uklonjen — pogledajte promjene koje narušavaju kompatibilnost.

Nove značajke

  • OpenMV Cam H7 — podrška za STM32H7 ploču s hardverskim JPEG koderom, H7 ADC te H7 DAC.

  • Crtanje — dodani su thickness linije, fill oblika (pravokutnik / krug), scale / kerning teksta, ključna riječ mono_space na draw_string(), image.draw_arrow() te image.draw_image() (crtanje sprite-a / maske).

  • Matematičke operacije — dodani su add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (s hmirror / vflip / mask) te remove_shadows(); osnovne operacije sada prihvaćaju skalarnu vrijednost / vrijednost boje primijenjenu na sve piksele.

  • Binarne / morfološke — novi binarni tip slike i binary(); operacije nad linijama te erode() / dilate() prihvaćaju maske; dodani su open() / close() / top_hat() / black_hat().

  • Filtri — dodani su cartoon, flood_fill, bilateral, laplacian, aliasi blur / gaussian_blur te adaptivno izjednačavanje histograma (histeq(adaptive=, clip_limit=, mask=)).

  • Statistikaget_statistics() / get_histogram() prihvaćaju popis pragova boja i invert; dodani su Otsu histogram.get_threshold() te Threshold objekt.

  • CMSIS CNN — dodan je image.classify_object() s primjerom cnn.py (zamijenjen modulom nn u v3.0.0).

  • Višedretvenost — omogućen je MicroPython modul _thread.

  • omv modul — dodane su informacije o verziji (version_string, arch, board_type, board_id); omogućeni su machine I2C4 sabirnica i posebne matematičke funkcije (erf, gamma, …); dodani su primjeri motorske maske te mnogo novih primjera skripti.

Ostale promjene i poboljšanja

  • Vanjski takt H7 senzora snižen je na 48 MHz (bolja kvaliteta slike, niži FPS); niska/visoka JPEG kvaliteta sada se može konfigurirati po ploči (i ugođena je za H7); dodano je odvajanje značajki po ploči pomoću imlib_config.h (sve funkcije slike ostaju omogućene u tvorničkom ugrađenom programu); ažuriran je priloženi MicroPython.

Ispravci grešaka

Obrada slika:

  • Ispravljeno je image.save() bez ekstenzije datoteke, mapiranje gain_db / gain_db_ceiling za OV2640 / OV7725 / OV9650 / MT9V034, prekomjerno pojačanje u sharpen(), morfološki šum na rubovima, dijeljenje s nulom u jednoj operaciji nad slikom te rušenje uslijed prelijevanja stoga kod prevelike veličine jezgre filtra (sada čista greška).

Sustav:

  • Zaštićen je USB VCP međuspremnik atomskom sekcijom (oštećenje serijskog prijenosa, #313), ispravljena je USB povezivost na Windowsima, montiranje datotečnog sustava unutarnje flash memorije ako SD kartica zakaže, cpufreq set_frequency() PLLP vrijednost te greška kod flashanja firmwarea iz pokretača (bootloader).

Podrška za hardver i ploče

  • OpenMV Cam H7 (STM32H7) — nova ploča s hardverskim JPEG koderom te H7 ADC / DAC.

  • machine — omogućena I2C4 sabirnica.

Promjene API-ja koje narušavaju kompatibilnost

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

Obje promjene koje narušavaju kompatibilnost su minor i utječu samo na skripte koje su koristile relevantnu značajku. Svaki hash commita vodi na njegov diff na GitHubu.

Redoslijed pozicijskih argumenata u Pythonu sada je strog (minor)

Parsiranje argumenata u Python C-modulima (image / sensor / fir / gif / lcd / mjpeg) sada čita pozicijske argumente prije ključnih riječi i fiksira pozicijski redoslijed. U kombinaciji s novim ključnim argumentima na metodama crtanja (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() dobivaju thickness / fill / scale / size), kod koji je pozicijski prosljeđivao parametre izvan redoslijeda — ili je proslijedio pozicijski color nakon jednog od novih argumenata — mora koristiti ključne argumente ili dokumentirani pozicijski redoslijed.

Commiti: e0e112468, fc74e70c3

image.mask_ellipse() uklonjen (minor)

image.mask_ellipse() je uklonjen. Skripte koje su ga pozivale moraju izbaciti poziv ili umjesto toga koristiti eksplicitan ROI / sliku maske.

Commiti: d7159fba3

Kontrolni popis migracije

Prosljeđujte argumente ključnom riječi (ili dokumentiranim pozicijskim redoslijedom), posebno color na metodama crtanja (promjena redoslijeda argumenata), i uklonite pozive image.mask_ellipse() (uklanjanje mask_ellipse). Sve ostale skripte rade nepromijenjeno.