v1.2.0¶
v1.2.0 je temeljno, vrlo veliko izdanje koje izgrađuje većinu klasičnog OpenMV API-ja za obradu slike: metode za crtanje, binarne / morfološke operacije, deskriptore ključnih točaka (FAST / FREAK / LBP), konverzije boja i image.statistics, BMP / PPM / JPEG ulaz/izlaz datoteka, module lcd, mjpeg, gif i mlx toplinski modul, OV7725 kameru te brojne kontrole modula sensor. Promijenjeno je neko temeljno ponašanje modula sensor — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Istaknuto¶
API za crtanje —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().Binarne / morfološke operacije —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Ključne točke — FAST / FREAK / LBP deskriptori s
match_descriptor()/save_descriptor()/load_descriptor().Podrška za OV7725 kameru;
image.statistics; BMP/PPM/JPEG ulaz/izlaz datoteka.Narušava kompatibilnost: ponašanje funkcija
sensor.reset(),sensor.snapshot()isensor.set_pixformat()je promijenjeno — pogledajte promjene koje narušavaju kompatibilnost.
Nove značajke¶
Crtanje — dodane su
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()s ključnim argumentima (boja, debljina, …).Binarne / morfološke operacije — dodane su
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees()tewidth()/height()/format().Ključne točke / deskriptori — izdvajanje FAST ključnih točaka putem
find_keypoints(), jedinstvenimatch_descriptor()isave_descriptor()/load_descriptor()za FREAK / LBP, uz Haar/LBP kaskadu za profil lica.Boja / statistika —
image.statisticsi funkcije za konverziju boja (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).Ulaz/izlaz datoteka — učitavanje i spremanje BMP / PPM (P2/P3/P5/P6) / JPEG (uključujući JPEG u sivim tonovima i 4:2:0 / 4:2:2 kromatsko poduzorkovanje).
Moduli — novi
lcd(LCD štit),mjpeg(snimanje videa),gifu boji (sGif.loop()) imlxmodul za toplinsku kameru, svaki s primjerima skripti.Senzor — dodani su
sensor.get_id()(+ OV9650/OV2640/OV7725 PID konstante),sensor.set_special_effect()(SDE_* konstante),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN), veličina sličiceHQVGAteimage.set_pixel(x, y, …).WiFi — dodan je ATWINC1500 WiFi upravljački program i temelji za OpenMV 1/2 BSP, uz BLE primjer.
Ostale promjene i poboljšanja¶
Međuspremnik slike sada se JPEG-komprimira prije slanja u OpenMV IDE (manja propusnost); JPEG kompresija se obavlja na licu mjesta; OV7725 H/V zumiranje omogućuje proizvoljno skaliranje; poboljšana (brža) Haar detekcija lica koja radi pri QVGA razlučivosti.
Ispravci grešaka¶
Obrada slike:
Ispravljeni su izračun integralne slike, oštećenje
median()filtra, izračun centroida, RGB filtri za kožu / crno-bijelo na RGB ulazu te brže čitanje/pisanje BMP/PPM datoteka u sivim tonovima.
Senzor i sustav:
Ispravljeni su mjerači vremena za
pyb.Servo(Servo sada radi), HQVGA razlučivost, pouzdanost inicijalizacije SD kartice, ponovno inicijaliziranje pohrane nakon mekog ponovnog pokretanja te ponovno pokretanje REPL-a kada nema prisutne skripte.
Hardver i podrška za ploče¶
OV7725 senzor kamere.
LCD štit (modul
lcd),mlxtoplinska kamera i temelji za ATWINC1500 WiFi.
Promjene API-ja koje narušavaju kompatibilnost¶
Promjene API-ja vidljive korisniku između v1.1.0 i v1.2.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Sve tri promjene koje narušavaju kompatibilnost su promjene ponašanja temeljnih funkcija modula sensor (isti API, drukčije ponašanje) — ponovno provjerite pogođene skripte. Svaki hash commita povezan je sa svojim diffom na GitHubu. (Velika većina ovog izdanja je novi API izgrađen unutar raspona v1.1→v1.2 i stoga je dodatak, a ne narušavanje.)
sensor.reset() više ne primjenjuje zadanu konfiguraciju (ponašanje)¶
sensor.reset() više ne primjenjuje ugrađenu zadanu konfiguraciju (pixformat / framesize / framerate / gain / contrast / brightness / saturation). Skripte koje su se oslanjale na to da reset() ostavlja iskoristive zadane vrijednosti sada moraju eksplicitno pozvati sensor.set_pixformat() i sensor.set_framesize() (te bilo koje druge postavke) nakon reset().
Commiti: d1e782df3
sensor.snapshot() izaziva iznimku pri isteku vremena (ponašanje)¶
sensor.snapshot() sada izaziva RuntimeError("Sensor Timeout!!") kada senzor istekne umjesto da se beskonačno zaglavi. Omotajte snapshot() u try / except RuntimeError ako trebate tolerirati istek vremena.
Commiti: e3f41d674
sensor.set_pixformat() izaziva iznimku za nepodržani format (ponašanje)¶
sensor.set_pixformat() sada izaziva iznimku kada dobije nepodržani format piksela umjesto da vraća False. Kod koji je provjeravao povratnu vrijednost False mora umjesto toga uhvatiti iznimku.
Commiti: e0c5822c2
Kontrolni popis za migraciju¶
Za čisti prijenos na v1.2.0 tipičan posao je:
Eksplicitno postavite
sensor.set_pixformat()/sensor.set_framesize()nakonsensor.reset()(promjena reseta).Omotajte
sensor.snapshot()utry/except RuntimeErrorako trebate tolerirati istek vremena senzora (promjena snapshota).Uhvatite iznimku iz
sensor.set_pixformat()umjesto provjereFalse(promjena set_pixformat).
Sve ostale skripte rade nepromijenjeno.