v4.5.1¶
v4.5.1 přidává nápovědy pro orientaci/poměr stran při vykreslování obrazu, načítání obrazů přímo z cesty k souboru, ioctl pro široké zorné pole na GC2145 a nové API ovladače podsvícení. Také přepracovává konstruktor Image(), API display a parsování argumentů modulů — přečtěte si zásadní změny níže.
Hlavní novinky¶
Nápovědy pro vykreslování —
draw_image()získal nápovědy pro orientaci (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) a škálování poměru stran (SCALE_ASPECT_KEEP/EXPAND/IGNORE).Načítání obrazů z disku —
draw_image()/display.write()přijímají řetězec s cestou k souboru.Řízení podsvícení — nové třídy
DACBacklight/PWMBacklighta argument displejebacklight=.Zásadní změna: konstruktor
Image(), APIdisplaya parsování argumentů modulů se změnily — viz zásadní změny.
Nové funkce¶
Nápovědy orientace pro
draw_image()—image.HMIRROR,image.VFLIP,image.TRANSPOSE, plus pohodlnéimage.ROTATE_90/ROTATE_180/ROTATE_270.Nápovědy poměru stran pro
draw_image()—image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREpro přizpůsobení / roztažení / natažení.Konstanty palet —
image.PALETTE_RAINBOWaimage.PALETTE_IRONBOW(přesunuty do modulu image).Široké zorné pole — nové ioctly
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDE(na GC2145, až 5x škálování senzoru).Načítání z disku —
draw_image()adisplay.write()přijímají řetězec s cestou k souboru zdrojového obrazu a načítají ho přímo z úložiště.Ovladače podsvícení — nové třídy
DACBacklightaPWMBacklight(importovatelné zdisplay) a klíčový argumentbacklight=v konstruktorech SPI/paralelních displejů.
Další změny a vylepšení¶
Ovladač ST7701 DSI displeje byl přesunut do vlastního modulu
st7701.py(stále importovatelný přesfrom display import *) a je zmrazen na Arduino Giga; IMU ovladačlsm9ds1byl zmrazen na Arduino Nano 33 BLE Sense.Kamery MT9V022 / MT9V034 (global-shutter) nyní aplikují korekci šumu řádků pro lepší kvalitu obrazu.
Svazek USB mass-storage na i.MX RT je nyní označen jako disk OpenMV.
Opravy chyb¶
Kamera a senzory:
Opravena detekce rohů (
find_keypoints()FAST/AGAST) u obrazů vyšších než 480 řádků — vyrovnávací paměť na řádek je nyní dimenzována podle výšky obrazu.Přidána podpora FSYNC pinu pro snímkově synchronizovaný
snapshot()na i.MX RT (OpenMV RT1060) a opraveny prohozené piny SPI4 MOSI/MISO na RT1060.
Displej a video:
Opraveno pořadí argumentů konstruktoru
SPIDisplay(bgr,byte_swap,triple_bufferbyly aplikovány na nesprávné parametry).Opraveno poškození obrazu na TV-shieldu při vykreslování obrazu se zadaným obdélníkem a nesprávné hranice MJPEG snímků při nahrávání škálovaných snímků.
Sítě:
Režim WINC WiFi AP již nevynucuje zastaralé omezení pouze na WEP — otevřený a WPA AP režim fungují se správnou obsluhou PSK.
Hardware a podpora desek¶
OpenMV RT1060 — FSYNC pin a opravené SPI4 piny.
Arduino GIGA — řešení spolehlivosti QSPI; ST7701 displej zmrazen.
Arduino Nano 33 BLE Sense — IMU ovladač
lsm9ds1zmrazen.
Zásadní změny API¶
Pro uživatele viditelné změny API mezi v4.5.0 a v4.5.1. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
minor — úzké API; ovlivňuje pouze skripty, které ho používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete pouze přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Konstruktor Image() a API display (minor)¶
Konstruktor image.Image byl přepracován na klíčové argumenty (height, pixformat, buffer=, copy_to_fb=); nyní umí sestavit obraz z existujícího bytearray/bufferu a pro komprimované formáty je buffer vyžadován. display.write() byl přepracován: x_scale/y_scale nyní přijímají float (poměr škálování) nebo int (cílovou velikost v pixelech) a samostatné klíčové argumenty x_size/y_size byly odstraněny. První poziční argument WINC.connect() byl přejmenován z essid na ssid a výsledky skenování WINC WiFi se změnily na (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID jsou nyní bajty; BSSID již není formátovaný MAC řetězec).
Rozsah podsvícení, škálování a pouze klíčové argumenty (behavior)¶
Display.backlight() nyní přijímá intenzitu 0–100 (0 = vypnuto, 100 = plné) místo 0–255 a při hodnotě mimo rozsah vyvolává ValueError. Celočíselné hodnoty x_scale/y_scale jsou nyní považovány za multiplikativní faktor škálování (stejně jako floaty) namísto cílového rozměru v pixelech — to ovlivňuje fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display a škálování tv. Parsování argumentů napříč moduly sensor, fir, tof, tv, mjpeg, gif, imageio, tf a audio bylo sjednoceno, čímž se několik dříve pozičních voleb stalo pouze klíčovými (názvy, výchozí hodnoty a chování jsou jinak beze změny).
Commity: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Kontrolní seznam migrace¶
Pro čistý přenos na v4.5.1 je typická práce následující:
Aktualizujte konstrukci
Image()na novou klíčovou formu, přepnětedisplay.write()zx_size/y_sizea přejmenujte vWINC.connect()essidnassid(obsluhte nové bajtové n-tice skenování) (změny konstruktoru/display/WINC).Přeškálujte volání
Display.backlight()na 0–100, znovu zkontrolujte jakékoli celočíselné použitíx_scale/y_scalea předávejte dříve poziční volby modulů jako klíčové (změny chování).