v2.8.0

v2.8.0 adalah rilis besar-besaran. Rilis ini memperkenalkan OpenMV Cam H7 (STM32H7) dengan encoder JPEG berbasis hardware dan H7 ADC/DAC, perombakan besar API image (ketebalan/isian gambar, operasi matematika/biner, banyak filter baru, ambang batas Otsu), threading MicroPython, dan modul versi omv. Urutan penguraian argumen Python telah dikunci dan image.mask_ellipse() telah dihapus — baca perubahan yang tidak kompatibel di bawah.

Sorotan

  • OpenMV Cam H7 — papan STM32H7 baru dengan encoder JPEG berbasis hardware dan H7 ADC / DAC.

  • Perombakan image — ketebalan garis, pengisian bentuk, draw_arrow() / draw_image(), operasi matematika/biner lengkap, dan banyak filter baru.

  • Ambang batas Otsuhistogram.get_threshold() dan objek Threshold.

  • Threading — dukungan _thread MicroPython.

  • Modul omv — info versi / board.

  • Perubahan tidak kompatibel: urutan argumen posisional Python kini ketat dan image.mask_ellipse() telah dihapus — lihat perubahan yang tidak kompatibel.

Fitur baru

  • OpenMV Cam H7 — dukungan papan STM32H7 dengan encoder JPEG berbasis hardware, H7 ADC, dan H7 DAC.

  • Menggambar — ditambahkan thickness garis, fill bentuk (persegi panjang / lingkaran), scale / kerning teks, kata kunci mono_space pada draw_string(), image.draw_arrow(), dan image.draw_image() (menggambar sprite / mask).

  • Operasi matematika — ditambahkan add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (dengan hmirror / vflip / mask), dan remove_shadows(); operasi dasar kini menerima nilai skalar/warna yang diterapkan ke semua piksel.

  • Biner / morfologi — tipe citra biner baru dan binary(); operasi garis serta erode() / dilate() menerima mask; ditambahkan open() / close() / top_hat() / black_hat().

  • Filter — ditambahkan cartoon, flood_fill, bilateral, laplacian, alias blur / gaussian_blur, dan pemerataan histogram adaptif (histeq(adaptive=, clip_limit=, mask=)).

  • Statistikget_statistics() / get_histogram() menerima daftar ambang batas warna dan invert; ditambahkan histogram.get_threshold() Otsu dan objek Threshold.

  • CMSIS CNN — ditambahkan image.classify_object() dengan contoh cnn.py (digantikan oleh modul nn di v3.0.0).

  • Threading — mengaktifkan modul _thread MicroPython.

  • Modul omv — ditambahkan info versi (version_string, arch, board_type, board_id); mengaktifkan bus I2C4 machine dan fungsi matematika khusus (erf, gamma, …); ditambahkan contoh motor-shield dan banyak skrip contoh baru.

Perubahan dan peningkatan lainnya

  • Clock eksternal sensor H7 diturunkan menjadi 48 MHz (kualitas citra lebih baik, FPS lebih rendah); kualitas JPEG rendah/tinggi kini dapat dikonfigurasi per board (dan disetel untuk H7); ditambahkan gating fitur imlib_config.h per board (semua fungsi citra tetap aktif pada firmware standar); MicroPython bawaan diperbarui.

Perbaikan bug

Pencitraan:

  • Memperbaiki image.save() tanpa ekstensi file, pemetaan gain_db / gain_db_ceiling untuk OV2640 / OV7725 / OV9650 / MT9V034, gain berlebih pada sharpen(), noise tepi morfologi, pembagian dengan nol dalam operasi citra, dan crash stack-smash akibat ukuran kernel filter yang terlalu besar (kini menghasilkan error yang jelas).

Sistem:

  • Melindungi buffer USB VCP dengan bagian atomik (korupsi serial, #313), memperbaiki konektivitas USB di Windows, pemasangan filesystem flash internal jika kartu SD gagal, nilai PLLP set_frequency() cpufreq, dan bug flashing firmware bootloader.

Dukungan hardware dan board

  • OpenMV Cam H7 (STM32H7) — papan baru dengan encoder JPEG berbasis hardware dan H7 ADC / DAC.

  • Modul machine — mengaktifkan bus I2C4.

Perubahan API yang tidak kompatibel

Perubahan API yang terlihat pengguna antara v2.7.0 dan v2.8.0. Cakupan: modul C Python di modules/ dan pustaka Python di scripts/libraries/.

Kedua perubahan yang tidak kompatibel bersifat minor dan hanya memengaruhi skrip yang menggunakan fitur terkait. Setiap hash commit terhubung ke diff-nya di GitHub.

Urutan argumen posisional Python kini ketat (minor)

Penguraian argumen di seluruh modul C Python (image / sensor / fir / gif / lcd / mjpeg) kini membaca argumen posisional sebelum kata kunci dan mengunci urutan posisional. Dikombinasikan dengan argumen kata kunci baru pada metode menggambar (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() yang mendapatkan thickness / fill / scale / size), kode yang meneruskan parameter di luar urutan posisional — atau meneruskan color posisional setelah salah satu argumen baru — harus menggunakan argumen kata kunci atau urutan posisional yang terdokumentasi.

Commit: e0e112468, fc74e70c3

image.mask_ellipse() dihapus (minor)

image.mask_ellipse() telah dihapus. Skrip yang memanggilnya harus menghapus panggilan tersebut atau menggunakan ROI eksplisit / citra mask sebagai gantinya.

Commit: d7159fba3

Daftar periksa migrasi

Teruskan argumen dengan kata kunci (atau dalam urutan posisional yang terdokumentasi), khususnya color pada metode menggambar (perubahan urutan argumen), dan hapus panggilan image.mask_ellipse() (penghapusan mask_ellipse). Semua skrip lainnya berjalan tanpa perubahan.