v4.5.1¶
v4.5.1 bổ sung các gợi ý vẽ hướng/tỷ lệ ảnh, tải ảnh trực tiếp từ đường dẫn file, một ioctl trường nhìn rộng GC2145, và API điều khiển đèn nền mới. Phiên bản này cũng cải tổ constructor Image(), các API display, và phân tích cú pháp đối số module — hãy đọc các thay đổi phá vỡ tương thích bên dưới.
Điểm nổi bật¶
Gợi ý vẽ —
draw_image()được bổ sung gợi ý hướng (HMIRROR/VFLIP/TRANSPOSE,ROTATE_90/180/270) và thu phóng theo tỷ lệ (SCALE_ASPECT_KEEP/EXPAND/IGNORE).Tải ảnh từ đĩa —
draw_image()/display.write()chấp nhận chuỗi đường dẫn file.Điều khiển đèn nền — các lớp
DACBacklight/PWMBacklightmới và đối sốbacklight=cho màn hình.Thay đổi phá vỡ tương thích: constructor
Image(), các APIdisplay, và phân tích cú pháp đối số module đã thay đổi — xem các thay đổi phá vỡ tương thích.
Tính năng mới¶
Gợi ý hướng
draw_image()—image.HMIRROR,image.VFLIP,image.TRANSPOSE, cộng với tiện íchimage.ROTATE_90/ROTATE_180/ROTATE_270.Gợi ý tỷ lệ
draw_image()—image.SCALE_ASPECT_KEEP/SCALE_ASPECT_EXPAND/SCALE_ASPECT_IGNOREcho vừa khít / mở rộng / kéo giãn.Hằng số palette —
image.PALETTE_RAINBOWvàimage.PALETTE_IRONBOW(chuyển vào module ảnh).Trường nhìn rộng — các ioctl
sensor.IOCTL_SET_FOV_WIDE/IOCTL_GET_FOV_WIDEmới (trên GC2145, lên đến 5x thu phóng cảm biến).Tải từ đĩa —
draw_image()vàdisplay.write()chấp nhận chuỗi đường dẫn file ảnh nguồn, tải trực tiếp từ bộ nhớ.Bộ điều khiển đèn nền — các lớp
DACBacklightvàPWMBacklightmới (có thể import từdisplay), và đối số chỉ từ khóabacklight=trên các constructor màn hình SPI/parallel.
Các thay đổi và cải tiến khác¶
Driver màn hình DSI ST7701 đã chuyển vào module
st7701.pyriêng (vẫn có thể import quafrom display import *) và được đóng băng trên Arduino Giga; driver IMUlsm9ds1được đóng băng trên Arduino Nano 33 BLE Sense.Camera MT9V022 / MT9V034 (màn trập toàn cầu) giờ áp dụng hiệu chỉnh nhiễu hàng để cải thiện chất lượng ảnh.
Volume lưu trữ USB mass-storage i.MX RT giờ được gán nhãn là đĩa OpenMV.
Sửa lỗi¶
Camera và cảm biến:
Đã sửa phát hiện góc (
find_keypoints()FAST/AGAST) trên ảnh cao hơn 480 hàng — bộ đệm mỗi hàng giờ được định kích thước theo chiều cao ảnh.Đã thêm hỗ trợ chân FSYNC để
snapshot()đồng bộ khung hình trên i.MX RT (OpenMV RT1060), và sửa chân MOSI/MISO SPI4 bị hoán đổi trên RT1060.
Màn hình và video:
Đã sửa thứ tự đối số constructor
SPIDisplay(bgr,byte_swap,triple_bufferđược áp dụng sai tham số).Đã sửa lỗi hỏng ảnh TV-shield khi vẽ ảnh với hình chữ nhật được chỉ định, và giới hạn khung hình MJPEG không đúng khi ghi các khung hình được thu phóng.
Mạng:
Chế độ AP WiFi WINC không còn bắt buộc hạn chế WEP lỗi thời — các chế độ AP mở và WPA hoạt động với xử lý PSK đúng.
Phần cứng và hỗ trợ bo mạch¶
OpenMV RT1060 — chân FSYNC và các chân SPI4 được sửa.
Arduino GIGA — giải pháp độ tin cậy QSPI; màn hình ST7701 được đóng băng vào.
Arduino Nano 33 BLE Sense — driver IMU
lsm9ds1được đóng băng vào.
Thay đổi API phá vỡ tương thích¶
Các thay đổi API hiển thị với người dùng giữa v4.5.0 và v4.5.1. Phạm vi: C-module Python trong modules/ và thư viện Python trong scripts/libraries/.
Mỗi thay đổi được gắn nhãn mức độ ảnh hưởng:
nhỏ — API hẹp; chỉ ảnh hưởng đến các tập lệnh đã sử dụng nó.
hành vi — cùng API, kết quả khác; cần kiểm tra lại các tập lệnh đã tinh chỉnh.
Các thay đổi được nhóm theo mức độ ảnh hưởng theo thứ tự đó. Nếu bạn chỉ muốn chuyển đổi code, hãy chuyển đến danh sách kiểm tra chuyển đổi ở cuối. Mỗi mã hash commit liên kết đến diff của nó trên GitHub.
Constructor Image() và các API display (nhỏ)¶
Constructor image.Image đã được cải tổ sang đối số từ khóa (height, pixformat, buffer=, copy_to_fb=); giờ có thể xây dựng ảnh từ bytearray/buffer hiện có, và buffer là bắt buộc cho các định dạng nén. display.write() đã được cải tổ: x_scale/y_scale giờ nhận float (tỷ lệ thu phóng) hoặc int (kích thước đích tính bằng điểm ảnh) và các từ khóa riêng biệt x_size/y_size đã bị xóa. Đối số vị trí đầu tiên của WINC.connect() được đổi tên essid → ssid, và kết quả quét WiFi WINC thay đổi thành (ssid_bytes, bssid_bytes, channel, rssi, security, N) (SSID/BSSID giờ là bytes; BSSID không còn là chuỗi MAC có định dạng).
Phạm vi đèn nền, thu phóng, và đối số chỉ từ khóa (hành vi)¶
Display.backlight() giờ nhận cường độ 0–100 (0 = tắt, 100 = tối đa) thay vì 0–255, ném ValueError khi ngoài phạm vi. Giá trị nguyên x_scale/y_scale giờ được coi là hệ số thu phóng nhân (giống float) thay vì kích thước điểm ảnh đích — điều này ảnh hưởng đến fir.snapshot()/draw_ir(), tof.snapshot()/draw_depth(), display, và thu phóng tv. Phân tích cú pháp đối số trên các module sensor, fir, tof, tv, mjpeg, gif, imageio, tf, và audio đã được thống nhất, làm cho một số tùy chọn trước đây là vị trí trở thành chỉ từ khóa (tên, giá trị mặc định, và hành vi không thay đổi).
Commits: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd
Danh sách kiểm tra chuyển đổi¶
Để chuyển đổi sạch sang v4.5.1, công việc thông thường là:
Cập nhật cấu trúc
Image()sang dạng từ khóa mới, chuyểndisplay.write()khỏix_size/y_size, và đổi tênWINC.connect()essid→ssid(xử lý các tuple quét dựa trên bytes mới) (thay đổi constructor/display/WINC).Điều chỉnh lại các lời gọi
Display.backlight()về 0–100, kiểm tra lại bất kỳ cách dùng nguyênx_scale/y_scalenào, và truyền các tùy chọn module trước đây là vị trí dưới dạng từ khóa (thay đổi hành vi).