v4.5.1¶
v4.5.1 menambahkan petunjuk orientasi/aspek gambar saat menggambar, memuat citra langsung dari jalur file, ioctl GC2145 untuk bidang pandang lebar, dan API pengontrol backlight baru. Rilis ini juga merombak konstruktor Image(), API display, dan penguraian argumen modul — baca perubahan yang merusak kompatibilitas di bawah ini.
Sorotan¶
Petunjuk gambar —
draw_image()mendapatkan petunjuk orientasi (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) dan penskalaan aspek (SCALE_ASPECT_KEEP/EXPAND/IGNORE).Muat citra dari disk —
draw_image()/display.write()menerima string jalur file.Kontrol backlight — kelas
DACBacklight/PWMBacklightbaru dan argumenbacklight=pada display.Merusak: konstruktor
Image(), APIdisplay, dan penguraian argumen modul berubah — lihat perubahan yang merusak kompatibilitas.
Fitur baru¶
Petunjuk orientasi
draw_image()—image.HMIRROR,image.VFLIP,image.TRANSPOSE, plus kemudahanimage.ROTATE_90/ROTATE_180/ROTATE_270.Petunjuk aspek
draw_image()—image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREuntuk pas / perluas / regangkan.Konstanta palet —
image.PALETTE_RAINBOWdanimage.PALETTE_IRONBOW(dipindahkan ke dalam modul image).Bidang pandang lebar — ioctl baru
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDE(pada GC2145, hingga 5x penskalaan sensor).Muat dari disk —
draw_image()dandisplay.write()menerima string jalur file citra sumber, memuatnya langsung dari penyimpanan.Pengontrol backlight — kelas
DACBacklightdanPWMBacklightbaru (dapat diimpor daridisplay), dan argumen khusus kata kuncibacklight=pada konstruktor display SPI/paralel.
Perubahan dan peningkatan lainnya¶
Driver display DSI ST7701 dipindahkan ke modul
st7701.pytersendiri (masih dapat diimpor melaluifrom display import *) dan dibekukan pada Arduino Giga; driver IMUlsm9ds1dibekukan pada Arduino Nano 33 BLE Sense.Kamera MT9V022 / MT9V034 (global-shutter) kini menerapkan koreksi row-noise untuk kualitas citra yang lebih baik.
Volume penyimpanan massal USB i.MX RT kini diberi label sebagai disk OpenMV.
Perbaikan bug¶
Kamera dan sensor:
Memperbaiki deteksi sudut (
find_keypoints()FAST/AGAST) pada citra yang lebih tinggi dari 480 baris — buffer per-baris kini berukuran sesuai tinggi citra.Menambahkan dukungan pin FSYNC untuk
snapshot()yang disinkronkan bingkai pada i.MX RT (OpenMV RT1060), dan memperbaiki pin MOSI/MISO SPI4 yang tertukar pada RT1060.
Display dan video:
Memperbaiki urutan argumen konstruktor
SPIDisplay(bgr,byte_swap,triple_bufferditerapkan ke parameter yang salah).Memperbaiki kerusakan citra TV-shield saat menggambar citra dengan persegi panjang yang ditentukan, dan batas bingkai MJPEG yang salah saat merekam bingkai yang diskalakan.
Jaringan:
Mode AP WiFi WINC tidak lagi memberlakukan pembatasan WEP-only yang usang — mode AP terbuka dan WPA berfungsi dengan penanganan PSK yang tepat.
Dukungan hardware dan board¶
OpenMV RT1060 — pin FSYNC dan pin SPI4 yang dikoreksi.
Arduino GIGA — solusi keandalan QSPI; display ST7701 dibekukan.
Arduino Nano 33 BLE Sense — driver IMU
lsm9ds1dibekukan.
Perubahan API yang merusak kompatibilitas¶
Perubahan API yang terlihat pengguna antara v4.5.0 dan v4.5.1. Cakupan: C-module Python di modules/ dan library Python di scripts/libraries/.
Setiap perubahan diberi tag dengan dampaknya:
kecil — API sempit; hanya memengaruhi skrip yang menggunakannya.
perilaku — API sama, hasil berbeda; periksa kembali skrip yang telah disetel.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memigrasikan kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
Konstruktor Image() dan API display (kecil)¶
Konstruktor image.Image dirombak menggunakan argumen kata kunci (height, pixformat, buffer=, copy_to_fb=); kini dapat membangun citra dari bytearray/buffer yang sudah ada, dan buffer diperlukan untuk format terkompresi. display.write() dirombak: x_scale/y_scale kini menerima float (rasio skala) atau int (ukuran target dalam piksel) dan kata kunci x_size/y_size terpisah dihapus. Argumen posisional pertama WINC.connect() diubah namanya dari essid → ssid, dan hasil pemindaian WiFi WINC berubah menjadi (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID kini berupa bytes; BSSID bukan lagi string MAC yang diformat).
Rentang backlight, penskalaan, dan argumen hanya kata kunci (perilaku)¶
Display.backlight() kini menerima intensitas 0–100 (0 = mati, 100 = penuh) alih-alih 0–255, menaikkan ValueError jika di luar rentang. Nilai integer x_scale/y_scale kini diperlakukan sebagai faktor skala multiplikatif (sama seperti float) alih-alih dimensi piksel target — ini memengaruhi fir.snapshot()/draw_ir(), tof.snapshot()/draw_depth(), display, dan penskalaan tv. Penguraian argumen di seluruh modul sensor, fir, tof, tv, mjpeg, gif, imageio, tf, dan audio telah disatukan, membuat beberapa opsi yang sebelumnya posisional menjadi hanya kata kunci (nama, nilai default, dan perilaku tidak berubah).
Commit: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Daftar periksa migrasi¶
Untuk migrasi bersih ke v4.5.1, pekerjaan umum yang perlu dilakukan:
Perbarui konstruksi
Image()ke bentuk kata kunci baru, beralih daridisplay.write()denganx_size/y_size, dan ubah namaessid→ssidpadaWINC.connect()(tangani tuple pemindaian berbasis bytes baru) (perubahan konstruktor/display/WINC).Skalakan ulang panggilan
Display.backlight()ke 0–100, periksa kembali penggunaan integerx_scale/y_scale, dan teruskan opsi modul yang sebelumnya posisional sebagai kata kunci (perubahan perilaku).