v1.4.0¶
v1.4.0 adalah reorganisasi imlib fondasi. find_blobs() / find_markers() ditulis ulang untuk pelacakan ambang batas warna langsung, banyak metode citra mandiri dilipat ke dalam tuple blob, dan beberapa metode citra diubah namanya (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). Rilis ini juga menambahkan sensor.get_fb() / toggle AGC / AEC dan ~60 skrip contoh. Ini adalah rilis yang banyak melanggar — baca perubahan yang melanggar di bawah ini.
Sorotan¶
Pelacakan blob berbasis warna —
find_blobs()menerima ambang batas warna langsung dan mengembalikan daftar datar tuple blob.Pembersihan Imlib —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().Sensor — ditambahkan
sensor.get_fb()dan toggle aktifkan AGC/AEC.~60 skrip contoh ditambahkan/diperluas.
Melanggar: API blob, metode citra yang dihapus, dan beberapa perubahan nama — lihat perubahan yang melanggar.
Fitur baru¶
Sensor — ditambahkan
sensor.get_fb()(mengambil buffer bingkai snapshot terakhir),sensor.set_gain_ctrl(enable)(toggle AGC), dansensor.set_exposure_ctrl(enable)(toggle AEC).Citra — subskrip citra (
img[i]) kini mendukung pembacaan dan penulisan piksel (skala abu-abu / RGB565 / JPEG); ditambahkanimage.compress()di tempat dan kata kunciquality=pada fungsi JPEG;find_blobs()/find_markers()/find_features()kini mengembalikan daftar kosong (dapat diiterasi) alih-alih non-daftar saat tidak ada yang ditemukan.Ditambahkan ~60 skrip contoh (kontrol papan, filter citra, pelacakan warna, deteksi wajah / mata / fitur, perisai WiFi) dan contoh deteksi iris kedua.
Perubahan dan peningkatan lainnya¶
image.histeq()kini bekerja pada citra RGB565, bukan hanya skala abu-abu.
Perbaikan bug¶
Menginisialisasi
pyb.DACsaat boot agar DAC berfungsi (#121), memperbaikiimage.dilate()yang rusak, korupsi byte nolclient.send()WINC, iterasi ulang penggabungan blob, bug reinisialisasi buffer file yang merusak filesystem setelah penggunaan pertama, komputasiTo_min/To_maxthermopile (#113), dan menerapkan patch HAL I2C/DMA MicroPython upstream.
Dukungan perangkat keras dan papan¶
Perisai WiFi — WINC1500 diperbarui ke file papan Rev-B.
pyb.DAC— periferal DAC diaktifkan.
Perubahan API yang melanggar¶
Perubahan API yang terlihat pengguna antara v1.3.0 dan v1.4.0. Cakupan: C-modul Python di modules/ dan pustaka Python di scripts/libraries/.
Setiap perubahan diberi tag dampaknya:
major — memengaruhi sebagian besar skrip yang menggunakan fitur tersebut; Anda perlu melakukan porting kode.
minor — API sempit; hanya memengaruhi skrip yang menggunakannya.
Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin mem-port kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.
find_blobs() / find_markers() ditulis ulang (major)¶
image.find_blobs() / find_markers() ditulis ulang untuk pelacakan berbasis warna: Anda kini meneruskan ambang batas warna (dan fungsi filter opsional) langsung alih-alih beroperasi pada citra yang telah disegmentasi, dan hasilnya adalah satu daftar datar tuple blob 10-elemen (dengan kolom kode warna) alih-alih pohon per-warna yang bersarang. Kerjakan ulang skrip pelacakan warna untuk meneruskan ambang batas warna dan mengiterasi daftar datar.
Metode citra mandiri dihapus (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees(), dan image.pixels() dihapus. Data centroid / orientasi / jumlah piksel kini tersedia sebagai kolom dari tuple blob yang dikembalikan oleh find_blobs().
Commit: 9e5d379c1
Perubahan nama metode imlib (major)¶
Beberapa metode citra diubah nama/diubah: image.subimg() → image.copy(), image.blit() → image.replace(), dan image.blend() diubah agar sesuai dengan operasi dua-citra lainnya. Metode image.scale() / scaled() / rainbow() dihapus (rainbow dipindahkan ke modul FIR). Perbarui panggilan ke nama baru.
Commit: b534dc6ff
find_eyes() diubah nama menjadi find_eye() (minor)¶
image.find_eyes() diubah nama menjadi image.find_eye() dan kini mengembalikan 2-tuple iris (x, y) alih-alih tuple mata sebelumnya. Ubah nama panggilan dan perbarui penanganan nilai kembalian.
Commit: 7a01a9bed
image.compress() diubah nama menjadi compressed() (minor)¶
image.compress() (yang mengembalikan citra JPEG baru) diubah nama menjadi image.compressed(); image.compress() baru justru mengompresi citra di tempat dan mengembalikan None. image.save() juga mendapatkan kata kunci quality= dan kini mengembalikan None alih-alih True. Migrasi img.compress(q) (yang mengharapkan citra yang dikembalikan) ke img.compressed(quality=q).
Commit: 367e5fdd3
Daftar periksa migrasi¶
Untuk port bersih ke v1.4.0, pekerjaan umumnya adalah:
Kerjakan ulang kode pelacakan warna untuk meneruskan ambang batas warna ke
find_blobs()/find_markers()dan mengiterasi daftar tuple blob datar (penulisan ulang find_blobs).Baca data centroid / orientasi / piksel dari tuple blob alih-alih metode mandiri yang dihapus (metode citra yang dihapus).
Ubah nama
subimg→copy,blit→replace, perbaiki panggilanblend(), dan gantiscale/scaled/rainbow(perubahan nama imlib).Ubah nama
find_eyes()→find_eye()(perubahan nama find_eye) dancompress()→compressed()(perubahan nama compress).
Semua skrip lainnya berjalan tanpa perubahan.