v4.5.1¶
v4.5.1 lägger till rithintar för bildorientering/bildförhållande, inläsning av bilder direkt från en filsökväg, en GC2145-ioctl för brett synfält samt ett nytt API för bakgrundsbelysningsstyrning. Den omarbetar även konstruktorn Image(), display-API:erna och tolkningen av modulargument — läs de brytande ändringarna nedan.
Höjdpunkter¶
Rithintar —
draw_image()fick hintar för orientering (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) och bildförhållandeskalning (SCALE_ASPECT_KEEP/EXPAND/IGNORE).Läs in bilder från disk —
draw_image()/display.write()accepterar en sträng med filsökväg.Bakgrundsbelysningsstyrning — nya klasser
DACBacklight/PWMBacklightoch ett display-argumentbacklight=.Brytande: konstruktorn
Image(),display-API:erna och tolkningen av modulargument ändrades — se de brytande ändringarna.
Nya funktioner¶
Orienteringshintar för
draw_image()—image.HMIRROR,image.VFLIP,image.TRANSPOSE, plus de bekvämaimage.ROTATE_90/ROTATE_180/ROTATE_270.Bildförhållandehintar för
draw_image()—image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREför anpassa / expandera / sträcka ut.Palettkonstanter —
image.PALETTE_RAINBOWochimage.PALETTE_IRONBOW(flyttade in i image-modulen).Brett synfält — nya ioctls
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDE(på GC2145, upp till 5x sensorskalning).Läs in från disk —
draw_image()ochdisplay.write()accepterar en sträng med filsökväg till källbilden och läser in den direkt från lagring.Bakgrundsbelysningsstyrenheter — nya klasser
DACBacklightochPWMBacklight(importerbara fråndisplay), samt ett endast-nyckelord-argumentbacklight=på SPI-/parallelldisplayens konstruktorer.
Övriga ändringar och förbättringar¶
ST7701 DSI-displaydrivrutinen flyttades till sin egen
st7701.py-modul (fortfarande importerbar viafrom display import *) och är fryst på Arduino Giga;lsm9ds1IMU-drivrutinen frystes på Arduino Nano 33 BLE Sense.MT9V022 / MT9V034 (global slutare) kameror tillämpar nu radbruskorrigering för bättre bildkvalitet.
i.MX RT USB-masslagringsvolymen märks nu som en OpenMV-disk.
Buggfixar¶
Kamera och sensorer:
Åtgärdade hörndetektering (
find_keypoints()FAST/AGAST) på bilder högre än 480 rader — bufferten per rad dimensioneras nu efter bildens höjd.Lade till stöd för FSYNC-stift för bildrutesynkroniserad
snapshot()på i.MX RT (OpenMV RT1060), och åtgärdade omkastade SPI4 MOSI/MISO-stift på RT1060.
Display och video:
Korrigerade argumentordningen i
SPIDisplay-konstruktorn (bgr,byte_swap,triple_buffertillämpades på fel parametrar).Åtgärdade bildkorruption på TV-shield vid ritning av en bild med en angiven rektangel, samt felaktiga MJPEG-bildrutegränser vid inspelning av skalade bildrutor.
Nätverk:
WINC WiFi AP-läge framtvingar inte längre den föråldrade WEP-endast-begränsningen — öppna och WPA AP-lägen fungerar med korrekt PSK-hantering.
Hårdvaru- och kortstöd¶
OpenMV RT1060 — FSYNC-stift och korrigerade SPI4-stift.
Arduino GIGA — kringgående för QSPI-tillförlitlighet; ST7701-display infryst.
Arduino Nano 33 BLE Sense —
lsm9ds1IMU-drivrutin infryst.
Brytande API-ändringar¶
Användarsynliga API-brott mellan v4.5.0 och v4.5.1. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är taggad med sin påverkan:
minor — smalt API; påverkar endast skript som använde det.
behavior — samma API, annat resultat; kontrollera om intrimmade skript på nytt.
Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migrationschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
Konstruktorn Image() och display-API:erna (minor)¶
Konstruktorn image.Image omarbetades till nyckelordsargument (height, pixformat, buffer=, copy_to_fb=); den kan nu bygga en bild från en befintlig bytearray/buffert, och en buffert krävs för komprimerade format. display.write() omarbetades: x_scale/y_scale tar nu en float (skalförhållande) eller int (målstorlek i pixlar) och de separata nyckelorden x_size/y_size togs bort. Det första positionsargumentet i WINC.connect() döptes om essid → ssid, och WINC WiFi-skanningsresultat ändrades till (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID är nu bytes; BSSID är inte längre en formaterad MAC-sträng).
Bakgrundsbelysningsintervall, skalning och endast-nyckelord-argument (behavior)¶
Display.backlight() tar nu en intensitet 0–100 (0 = av, 100 = full) i stället för 0–255, och kastar ValueError utanför intervallet. Heltalsvärden för x_scale/y_scale behandlas nu som en multiplikativ skalfaktor (samma som floats) i stället för en målpixeldimension — detta påverkar fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display och tv-skalning. Argumenttolkningen över modulerna sensor, fir, tof, tv, mjpeg, gif, imageio, tf och audio förenhetligades, vilket gjorde flera tidigare positionsbaserade alternativ endast-nyckelord (namn, standardvärden och beteende är i övrigt oförändrade).
Commits: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Migrationschecklista¶
För en ren portning till v4.5.1 är det typiska arbetet:
Uppdatera
Image()-konstruktion till den nya nyckelordsformen, bytdisplay.write()frånx_size/y_size, och döp omWINC.connect()essid→ssid(hantera de nya bytes-baserade skanningstuplerna) (ändringarna av konstruktor/display/WINC).Skala om anrop till
Display.backlight()till 0–100, kontrollera eventuell heltalsanvändning avx_scale/y_scalepå nytt, och skicka tidigare positionsbaserade modulalternativ som nyckelord (beteendeändringarna).