v2.8.0¶
v2.8.0 là một bản phát hành lớn. Nó bổ sung hỗ trợ OpenMV Cam H7 (STM32H7) với bộ mã hóa JPEG phần cứng và H7 ADC/DAC, cải tổ toàn diện API image (độ dày/tô màu khi vẽ, các phép toán toán học/nhị phân, nhiều bộ lọc mới, phân ngưỡng Otsu), đa luồng MicroPython, và module phiên bản omv. Thứ tự phân tích đối số Python đã được cố định và image.mask_ellipse() đã bị xóa — hãy đọc các thay đổi không tương thích bên dưới.
Điểm nổi bật¶
OpenMV Cam H7 — bo mạch STM32H7 mới với bộ mã hóa JPEG phần cứng và H7 ADC / DAC.
imageđược cải tổ — độ dày đường nét, tô màu hình dạng,draw_arrow()/draw_image(), đầy đủ các phép toán toán học/nhị phân, và nhiều bộ lọc mới.Phân ngưỡng Otsu —
histogram.get_threshold()và đối tượngThreshold.Đa luồng — hỗ trợ module
_threadcủa MicroPython.Module
omv— thông tin phiên bản / bo mạch.Không tương thích: thứ tự đối số vị trí Python hiện được áp dụng nghiêm ngặt và
image.mask_ellipse()đã bị xóa — xem các thay đổi không tương thích.
Tính năng mới¶
OpenMV Cam H7 — hỗ trợ bo mạch STM32H7 với bộ mã hóa JPEG phần cứng, H7 ADC và H7 DAC.
Vẽ — thêm
thickness(độ dày) cho đường thẳng,fill(tô màu) cho hình dạng (hình chữ nhật / hình tròn),scale/ kerning cho văn bản, từ khóamono_spacetrêndraw_string(),image.draw_arrow(), vàimage.draw_image()(vẽ sprite / mask).Các phép toán toán học — thêm
add(),sub(),mul(),div(),min(),max(),difference(),blend(),replace()(vớihmirror/vflip/mask), vàremove_shadows(); các phép toán cơ bản giờ đây chấp nhận giá trị vô hướng/màu sắc áp dụng cho tất cả các điểm ảnh.Nhị phân / hình thái học — kiểu ảnh nhị phân mới và
binary(); các phép toán đường thẳng cùngerode()/dilate()chấp nhận mask; thêmopen()/close()/top_hat()/black_hat().Bộ lọc — thêm
cartoon,flood_fill,bilateral,laplacian, bí danhblur/gaussian_blur, và cân bằng biểu đồ tần suất thích ứng (histeq(adaptive=, clip_limit=, mask=)).Thống kê —
get_statistics()/get_histogram()chấp nhận danh sách ngưỡng màu sắc vàinvert; thêmhistogram.get_threshold()theo Otsu và đối tượngThreshold.CMSIS CNN — thêm
image.classify_object()với ví dụcnn.py(được thay thế bởi modulenntrong v3.0.0).Đa luồng — kích hoạt module
_threadcủa MicroPython.Module
omv— thêm thông tin phiên bản (version_string,arch,board_type,board_id); kích hoạt bus I2C4machinevà các hàm toán học đặc biệt (erf,gamma, …); thêm các ví dụ motor-shield và nhiều tập lệnh ví dụ mới.
Các thay đổi và cải tiến khác¶
Xung nhịp ngoài của cảm biến H7 được giảm xuống 48 MHz (chất lượng ảnh tốt hơn, FPS thấp hơn); chất lượng JPEG thấp/cao giờ đây có thể cấu hình theo từng bo mạch (và được tinh chỉnh cho H7); thêm kiểm soát tính năng
imlib_config.htheo từng bo mạch (tất cả các hàm xử lý ảnh vẫn được kích hoạt trên firmware gốc); cập nhật MicroPython đi kèm.
Sửa lỗi¶
Xử lý ảnh:
Đã sửa
image.save()khi không có phần mở rộng tệp, ánh xạgain_db/gain_db_ceilingcho OV2640 / OV7725 / OV9650 / MT9V034, độ khuếch đại quá mức trongsharpen(), nhiễu cạnh hình thái học, lỗi chia cho không trong một phép toán ảnh, và lỗi crash tràn stack do kích thước kernel bộ lọc quá lớn (giờ đây báo lỗi rõ ràng).
Hệ thống:
Bảo vệ bộ đệm USB VCP bằng đoạn mã nguyên tử (lỗi hỏng dữ liệu serial, #313), sửa kết nối USB trên Windows, gắn kết hệ thống tệp flash nội bộ khi thẻ SD bị lỗi, giá trị PLLP của
cpufreqset_frequency(), và một lỗi khi flash firmware qua bootloader.
Phần cứng và hỗ trợ bo mạch¶
OpenMV Cam H7 (STM32H7) — bo mạch mới với bộ mã hóa JPEG phần cứng và H7 ADC / DAC.
Module
machine— kích hoạt bus I2C4.
Các thay đổi API không tương thích¶
Các thay đổi API không tương thích với người dùng giữa v2.7.0 và v2.8.0. Phạm vi: C-module Python trong modules/ và thư viện Python trong scripts/libraries/.
Cả hai thay đổi không tương thích đều là nhỏ và chỉ ảnh hưởng đến các tập lệnh sử dụng tính năng liên quan. Mỗi hash commit liên kết đến diff của nó trên GitHub.
Thứ tự đối số vị trí Python hiện được áp dụng nghiêm ngặt (nhỏ)¶
Việc phân tích đối số trong các C-module Python (image / sensor / fir / gif / lcd / mjpeg) giờ đây đọc đối số vị trí trước từ khóa và khóa thứ tự vị trí. Kết hợp với các từ khóa mới trên các phương thức vẽ (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() thêm thickness / fill / scale / size), code truyền tham số không theo thứ tự vị trí — hoặc truyền color vị trí sau một trong các đối số mới — phải sử dụng đối số từ khóa hoặc thứ tự vị trí đã được ghi tài liệu.
Đã xóa image.mask_ellipse() (nhỏ)¶
image.mask_ellipse() đã bị xóa. Các tập lệnh gọi nó phải bỏ lời gọi đó hoặc sử dụng ROI rõ ràng / ảnh mask thay thế.
Commits: d7159fba3
Danh sách kiểm tra di chuyển¶
Truyền đối số theo từ khóa (hoặc theo thứ tự vị trí đã được ghi tài liệu), đặc biệt là color trên các phương thức vẽ (thay đổi thứ tự đối số), và xóa các lời gọi image.mask_ellipse() (việc xóa mask_ellipse). Tất cả các tập lệnh khác chạy không thay đổi.