v1.2.0#
v1.2.0 adalah rilis besar fondasi yang membangun sebagian besar API pencitraan OpenMV klasik: metode gambar, operasi biner / morfologi, deskriptor titik kunci (FAST / FREAK / LBP), konversi warna dan image.statistics, I/O file BMP / PPM / JPEG, modul thermal lcd, mjpeg, gif, dan mlx, kamera OV7725, serta banyak kontrol sensor. Beberapa perilaku inti sensor berubah — baca perubahan yang melanggar di bawah ini.
Sorotan#
API Gambar —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().Biner / morfologi —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Titik kunci — deskriptor FAST / FREAK / LBP dengan
match_descriptor()/save_descriptor()/load_descriptor().Dukungan kamera OV7725;
image.statistics; I/O file BMP/PPM/JPEG.Melanggar: perilaku
sensor.reset(),sensor.snapshot(), dansensor.set_pixformat()berubah — lihat perubahan yang melanggar.
Fitur baru#
Gambar — ditambahkan
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()dengan argumen kata kunci (warna, ketebalan, …).Biner / morfologi — ditambahkan
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees(), sertawidth()/height()/format().Titik kunci / deskriptor — ekstraksi titik kunci FAST melalui
find_keypoints(),match_descriptor()terpadu dansave_descriptor()/load_descriptor()untuk FREAK / LBP, ditambah Haar/LBP cascade wajah profil.Warna / statistik —
image.statisticsdan fungsi konversi warna (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).I/O File — muat dan simpan BMP / PPM (P2/P3/P5/P6) / JPEG (termasuk JPEG skala abu-abu dan subsampling chroma 4:2:0 / 4:2:2).
Modul — modul baru
lcd(perisai LCD),mjpeg(perekaman video),gifwarna (denganGif.loop()), dan modul kamera thermalmlx, masing-masing dengan skrip contoh.Sensor — ditambahkan
sensor.get_id()(+ konstanta PID OV9650/OV2640/OV7725),sensor.set_special_effect()(konstanta SDE_*),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN), ukuran bingkaiHQVGA, danimage.set_pixel(x, y, …).WiFi — ditambahkan driver WiFi ATWINC1500 dan landasan BSP OpenMV 1/2, ditambah contoh BLE.
Perubahan dan peningkatan lainnya#
Buffer bingkai kini dikompresi JPEG sebelum dialirkan ke OpenMV IDE (bandwidth lebih rendah); kompresi JPEG dilakukan di tempat; zoom H/V OV7725 memungkinkan penskalaan sewenang-wenang; deteksi wajah Haar yang lebih baik (lebih cepat) yang berjalan pada QVGA.
Perbaikan bug#
Pencitraan:
Memperbaiki komputasi integral-image, kerusakan filter
median(), komputasi centroid, filter kulit RGB / hitam-putih pada input RGB, serta baca/tulis BMP/PPM skala abu-abu yang lebih cepat.
Sensor dan sistem:
Memperbaiki timer
pyb.Servo(Servo kini berfungsi), resolusi HQVGA, keandalan inisialisasi kartu SD, reinisialisasi penyimpanan setelah soft-reset, dan menjalankan ulang REPL saat tidak ada skrip.
Dukungan perangkat keras dan papan#
Sensor kamera OV7725.
Perisai LCD (modul
lcd), kamera thermalmlx, dan landasan WiFi ATWINC1500.
Perubahan API yang melanggar#
Perubahan API yang terlihat pengguna antara v1.1.0 dan v1.2.0. Cakupan: C-modul Python di modules/ dan pustaka Python di scripts/libraries/.
Ketiga perubahan yang melanggar adalah perubahan behavior pada fungsi inti sensor (API sama, perilaku berbeda) — periksa ulang skrip yang terpengaruh. Setiap hash commit menautkan ke diff-nya di GitHub. (Sebagian besar rilis ini adalah API baru yang dibangun dalam rentang v1.1→v1.2 dan bersifat tambahan, bukan melanggar.)
sensor.reset() tidak lagi menerapkan konfigurasi default (behavior)#
sensor.reset() tidak lagi menerapkan konfigurasi default bawaan (pixformat / framesize / framerate / gain / kontras / kecerahan / saturasi). Skrip yang mengandalkan reset() untuk meninggalkan default yang dapat digunakan harus kini secara eksplisit memanggil sensor.set_pixformat() dan sensor.set_framesize() (dan pengaturan lainnya) setelah reset().
Commit: d1e782df3
sensor.snapshot() memunculkan pengecualian saat timeout (behavior)#
sensor.snapshot() kini memunculkan RuntimeError("Sensor Timeout!!") saat sensor timeout alih-alih menggantung tanpa batas. Bungkus snapshot() dalam try / except RuntimeError jika Anda perlu menoleransi timeout.
Commit: e3f41d674
sensor.set_pixformat() memunculkan pengecualian pada format yang tidak didukung (behavior)#
sensor.set_pixformat() kini memunculkan pengecualian saat diberi format piksel yang tidak didukung alih-alih mengembalikan False. Kode yang memeriksa nilai kembalian False harus menangkap pengecualian tersebut.
Commit: e0c5822c2
Daftar periksa migrasi#
Untuk port bersih ke v1.2.0, pekerjaan umumnya adalah:
Setel secara eksplisit
sensor.set_pixformat()/sensor.set_framesize()setelahsensor.reset()(perubahan reset).Bungkus
sensor.snapshot()dalamtry/except RuntimeErrorjika Anda perlu menoleransi timeout sensor (perubahan snapshot).Tangkap pengecualian dari
sensor.set_pixformat()alih-alih memeriksaFalse(perubahan set_pixformat).
Semua skrip lainnya berjalan tanpa perubahan.