v1.2.0¶
v1.2.0 je základní, velmi rozsáhlé vydání, které buduje většinu klasického zobrazovacího API OpenMV: metody pro kreslení, binární / morfologické operace, deskriptory klíčových bodů (FAST / FREAK / LBP), barevné konverze a image.statistics, vstup/výstup souborů BMP / PPM / JPEG, moduly lcd, mjpeg, gif a termální modul mlx, kameru OV7725 a mnoho ovládacích prvků sensor. Některé základní chování sensor se změnilo — přečtěte si níže uvedené zásadní změny.
Hlavní novinky¶
Kreslicí API —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().Binární / morfologie —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Klíčové body — deskriptory FAST / FREAK / LBP s
match_descriptor()/save_descriptor()/load_descriptor().Podpora kamery OV7725;
image.statistics; vstup/výstup souborů BMP/PPM/JPEG.Zásadní: chování
sensor.reset(),sensor.snapshot()asensor.set_pixformat()se změnilo — viz zásadní změny.
Nové funkce¶
Kreslení — přidány
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()s pojmenovanými argumenty (barva, tloušťka, …).Binární / morfologie — přidány
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees()awidth()/height()/format().Klíčové body / deskriptory — extrakce klíčových bodů FAST přes
find_keypoints(), jednotnématch_descriptor()asave_descriptor()/load_descriptor()pro FREAK / LBP a navíc Haar/LBP kaskáda pro profil obličeje.Barva / statistiky —
image.statisticsa funkce pro barevné konverze (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).Vstup/výstup souborů — načítání a ukládání BMP / PPM (P2/P3/P5/P6) / JPEG (včetně JPEG ve stupních šedi a podvzorkování barevnosti 4:2:0 / 4:2:2).
Moduly — nový
lcd(LCD shield),mjpeg(nahrávání videa), barevnýgif(sGif.loop()) a termální moduly kamerymlx, každý s ukázkovými skripty.Senzor — přidány
sensor.get_id()(+ PID konstanty OV9650/OV2640/OV7725),sensor.set_special_effect()(konstanty SDE_*),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN), velikost snímkuHQVGAaimage.set_pixel(x, y, …).WiFi — přidán ovladač WiFi ATWINC1500 a základy BSP pro OpenMV 1/2, plus příklad BLE.
Další změny a vylepšení¶
Snímkový buffer (frame buffer) je nyní před streamováním do OpenMV IDE komprimován do JPEG (nižší šířka pásma); komprese JPEG probíhá na místě; H/V zoom OV7725 umožňuje libovolné škálování; vylepšená (rychlejší) detekce obličejů pomocí Haar, která běží na QVGA.
Opravy chyb¶
Zpracování obrazu:
Opraven výpočet integrálního obrazu, poškození filtru
median(), výpočet těžiště, RGB filtry pleti / černobílé na RGB vstupu a rychlejší čtení/zápis BMP/PPM ve stupních šedi.
Senzor a systém:
Opraveny časovače
pyb.Servo(Servo nyní funguje), rozlišení HQVGA, spolehlivost inicializace SD karty, opětovná inicializace úložiště po softwarovém resetu a opětovné spuštění REPL, pokud není přítomen žádný skript.
Hardware a podpora desek¶
Obrazový senzor OV7725.
LCD shield (modul
lcd), termální kameramlxa základy WiFi ATWINC1500.
Zásadní změny API¶
Pro uživatele viditelné změny API mezi v1.1.0 a v1.2.0. Rozsah: C-moduly Pythonu v modules/ a knihovny Pythonu v scripts/libraries/.
Všechny tři zásadní změny jsou změny chování základních funkcí sensor (stejné API, jiné chování) — znovu zkontrolujte dotčené skripty. Každý hash commitu odkazuje na svůj diff na GitHubu. (Naprostá většina tohoto vydání je nové API vybudované v rozsahu v1.1→v1.2, a je tedy přídavná, nikoli zásadní.)
sensor.reset() již neaplikuje výchozí konfiguraci (chování)¶
sensor.reset() již neaplikuje vestavěnou výchozí konfiguraci (pixformat / framesize / framerate / gain / contrast / brightness / saturation). Skripty, které se spoléhaly na to, že reset() zanechá použitelnou výchozí konfiguraci, musí nyní po reset() explicitně volat sensor.set_pixformat() a sensor.set_framesize() (a jakákoli další nastavení).
Commity: d1e782df3
sensor.snapshot() vyvolá výjimku při vypršení časového limitu (chování)¶
sensor.snapshot() nyní vyvolá RuntimeError("Sensor Timeout!!"), když senzoru vyprší časový limit, místo nekonečného zaseknutí. Pokud potřebujete tolerovat časové limity, obalte snapshot() do try / except RuntimeError.
Commity: e3f41d674
sensor.set_pixformat() vyvolá výjimku při nepodporovaném formátu (chování)¶
sensor.set_pixformat() nyní vyvolá výjimku, je-li jí předán nepodporovaný pixelový formát, místo vrácení False. Kód, který kontroloval návratovou hodnotu False, musí místo toho zachytit výjimku.
Commity: e0c5822c2
Kontrolní seznam pro migraci¶
Pro čistý přechod na v1.2.0 obvykle platí toto:
Po
sensor.reset()explicitně nastavtesensor.set_pixformat()/sensor.set_framesize()(změna resetu).Pokud potřebujete tolerovat časové limity senzoru, obalte
sensor.snapshot()dotry/except RuntimeError(změna snapshotu).Zachyťte výjimku z
sensor.set_pixformat()místo kontroly naFalse(změna set_pixformat).
Všechny ostatní skripty běží beze změny.