v4.5.1¶
v4.5.1 adaugă indicații de desenare pentru orientarea/aspectul imaginii, încărcarea imaginilor direct dintr-o cale de fișier, un ioctl pentru câmpul vizual larg GC2145 și un nou API de controler al iluminării de fundal. De asemenea, reproiectează constructorul Image(), API-urile display și analiza argumentelor modulelor — citiți modificările incompatibile mai jos.
Puncte importante¶
Indicații de desenare —
draw_image()a câștigat indicații de orientare (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) și de scalare a aspectului (SCALE_ASPECT_KEEP/EXPAND/IGNORE).Încărcarea imaginilor de pe disc —
draw_image()/display.write()acceptă un șir cu calea unui fișier.Control al iluminării de fundal — noi clase
DACBacklight/PWMBacklightși un argumentbacklight=pentru afișaj.Incompatibil: constructorul
Image(), API-uriledisplayși analiza argumentelor modulelor s-au modificat — vedeți modificările incompatibile.
Funcționalități noi¶
Indicații de orientare pentru
draw_image()—image.HMIRROR,image.VFLIP,image.TRANSPOSE, plus variantele de comoditateimage.ROTATE_90/ROTATE_180/ROTATE_270.Indicații de aspect pentru
draw_image()—image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREpentru încadrare / extindere / întindere.Constante de paletă —
image.PALETTE_RAINBOWșiimage.PALETTE_IRONBOW(mutate în modulul image).Câmp vizual larg — noi ioctl-uri
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDE(pe GC2145, scalare a senzorului de până la 5x).Încărcare de pe disc —
draw_image()șidisplay.write()acceptă un șir cu calea unui fișier-imagine sursă, încărcându-l direct din stocare.Controlere ale iluminării de fundal — noi clase
DACBacklightșiPWMBacklight(importabile dindisplay) și un argument exclusiv cu cuvânt-cheiebacklight=pe constructorii afișajelor SPI/paralel.
Alte modificări și îmbunătățiri¶
Driverul de afișaj DSI ST7701 a fost mutat în propriul modul
st7701.py(în continuare importabil prinfrom display import *) și este înghețat pe Arduino Giga; driverul IMUlsm9ds1a fost înghețat pe Arduino Nano 33 BLE Sense.Camerele MT9V022 / MT9V034 (cu obturator global) aplică acum corecția zgomotului pe rânduri pentru o calitate mai bună a imaginii.
Volumul de stocare în masă USB i.MX RT este acum etichetat ca disc OpenMV.
Corectări de erori¶
Cameră și senzori:
S-a corectat detectarea colțurilor (
find_keypoints()FAST/AGAST) pe imagini mai înalte de 480 de rânduri — tamponul per rând este acum dimensionat după înălțimea imaginii.S-a adăugat suport pentru pinul FSYNC pentru
snapshot()sincronizat pe cadre pe i.MX RT (OpenMV RT1060) și s-au corectat pinii SPI4 MOSI/MISO inversați pe RT1060.
Afișaj și video:
S-a corectat ordinea argumentelor constructorului
SPIDisplay(bgr,byte_swap,triple_buffererau aplicate parametrilor greșiți).S-a corectat coruperea imaginii la shield-ul TV când se desenează o imagine cu un dreptunghi specificat, precum și limitele incorecte ale cadrelor MJPEG la înregistrarea cadrelor scalate.
Rețelistică:
Modul AP WiFi WINC nu mai impune restricția învechită de tip doar-WEP — modurile AP deschis și WPA funcționează cu gestionarea corectă a PSK.
Suport hardware și plăci¶
OpenMV RT1060 — pin FSYNC și pini SPI4 corectați.
Arduino GIGA — soluție de fiabilitate pentru QSPI; afișaj ST7701 înghețat.
Arduino Nano 33 BLE Sense — driver IMU
lsm9ds1înghețat.
Modificări incompatibile de API¶
Modificări de API vizibile pentru utilizator între v4.5.0 și v4.5.1. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
minor — API restrâns; afectează doar scripturile care îl foloseau.
comportament — același API, rezultate diferite; reverificați scripturile reglate fin.
Modificările sunt grupate după impact în această ordine. Dacă doriți doar să vă portați codul, săriți la lista de verificare pentru migrare de la final. Fiecare hash de commit trimite către diff-ul său pe GitHub.
Constructorul Image() și API-urile display (minor)¶
Constructorul image.Image a fost reproiectat pentru a folosi argumente cu cuvânt-cheie (height, pixformat, buffer=, copy_to_fb=); poate acum construi o imagine dintr-un bytearray/tampon existent, iar un tampon este necesar pentru formatele comprimate. display.write() a fost reproiectat: x_scale/y_scale primesc acum un float (raport de scalare) sau un int (dimensiunea țintă în pixeli), iar cuvintele-cheie separate x_size/y_size au fost eliminate. Primul argument pozițional al WINC.connect() a fost redenumit essid → ssid, iar rezultatele scanării WiFi WINC s-au modificat în (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID sunt acum bytes; BSSID nu mai este un șir MAC formatat).
Intervalul iluminării de fundal, scalarea și argumentele exclusiv cu cuvânt-cheie (comportament)¶
Display.backlight() primește acum o intensitate 0–100 (0 = oprit, 100 = maxim) în loc de 0–255, generând ValueError în afara intervalului. Valorile întregi x_scale/y_scale sunt acum tratate ca factor de scalare multiplicativ (la fel ca float-urile), nu ca dimensiune țintă în pixeli — acest lucru afectează fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display și scalarea tv. Analiza argumentelor în modulele sensor, fir, tof, tv, mjpeg, gif, imageio, tf și audio a fost unificată, transformând mai multe opțiuni anterior poziționale în exclusiv cu cuvânt-cheie (numele, valorile implicite și comportamentul rămân altfel neschimbate).
Commit-uri: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Listă de verificare pentru migrare¶
Pentru o portare curată la v4.5.1, munca tipică este:
Actualizați construirea
Image()la noua formă cu cuvinte-cheie, trecețidisplay.write()de lax_size/y_sizeși redenumițiWINC.connect()essid→ssid(gestionați noile tupluri de scanare bazate pe bytes) (modificările de constructor/display/WINC).Rescalați apelurile
Display.backlight()la 0–100, reverificați orice utilizare a valorilor întregix_scale/y_scaleși transmiteți opțiunile de modul anterior poziționale drept cuvinte-cheie (modificările de comportament).