v1.4.0¶
v1.4.0 เป็นการจัดระเบียบ imlib ครั้งใหญ่ find_blobs() / find_markers() ถูกเขียนใหม่สำหรับการติดตามด้วยค่าขีดแบ่งสี, เมธอด image แบบ standalone หลายรายการถูกรวมเข้าใน blob tuples และเมธอด image หลายรายการถูกเปลี่ยนชื่อ (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed) นอกจากนี้ยังเพิ่ม sensor.get_fb() / สวิตช์ AGC / AEC และสคริปต์ตัวอย่างประมาณ 60 รายการ นี่เป็นรุ่นที่มีการเปลี่ยนแปลงครั้งใหญ่มาก — โปรดอ่านการเปลี่ยนแปลงที่ไม่เข้ากันด้านล่าง
ไฮไลต์¶
การติดตาม blob ด้วยสี —
find_blobs()รับค่าขีดแบ่งสีโดยตรงและคืนรายการ blob tuples แบบแบนทำความสะอาด Imlib —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed()Sensor — เพิ่ม
sensor.get_fb()และสวิตช์เปิด/ปิด AGC/AECเพิ่มสคริปต์ตัวอย่าง ~60 รายการ
เปลี่ยนแปลงครั้งใหญ่: blob API, เมธอด image ที่ถูกลบออก และการเปลี่ยนชื่อหลายรายการ — ดูการเปลี่ยนแปลงที่ไม่เข้ากัน
ฟีเจอร์ใหม่¶
Sensor — เพิ่ม
sensor.get_fb()(ดึง framebuffer สแนปช็อตล่าสุด),sensor.set_gain_ctrl(enable)(สลับ AGC) และsensor.set_exposure_ctrl(enable)(สลับ AEC)Image — subscript ของ image (
img[i]) รองรับทั้งการอ่านและเขียนพิกเซล (grayscale / RGB565 / JPEG); เพิ่มimage.compress()แบบ in-place และ keywordquality=สำหรับฟังก์ชัน JPEG;find_blobs()/find_markers()/find_features()ตอนนี้คืนรายการว่าง (iterable) แทน non-list เมื่อไม่พบสิ่งใดเพิ่มสคริปต์ตัวอย่างประมาณ 60 รายการ (การควบคุมบอร์ด, image filters, color tracking, การตรวจจับใบหน้า/ตา/ลักษณะเด่น, WiFi shield) และตัวอย่างการตรวจจับม่านตาชิ้นที่สอง
การเปลี่ยนแปลงและการปรับปรุงอื่นๆ¶
image.histeq()ตอนนี้ทำงานได้กับภาพ RGB565 ไม่ใช่แค่ระดับสีเทา
การแก้ไขบัก¶
เริ่มต้น
pyb.DACตอน boot เพื่อให้ DAC ทำงานได้ (#121), แก้ไขimage.dilate()ที่เสีย, ความเสียหายจาก zero-byte ของ WINCclient.send(), การ re-iteration ของการรวม blob, บัก reinitialize file-buffer ที่ทำลาย filesystem หลังใช้งานครั้งแรก, การคำนวณTo_min/To_maxของ thermopile (#113) และ patch MicroPython HAL I2C/DMA upstream
ฮาร์ดแวร์และการรองรับบอร์ด¶
WiFi shield — WINC1500 อัพเดตเป็นไฟล์บอร์ด Rev-B
pyb.DAC— เปิดใช้งาน DAC peripheral
การเปลี่ยนแปลง API ที่ไม่เข้ากัน¶
การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v1.3.0 และ v1.4.0 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/
การเปลี่ยนแปลงแต่ละรายการถูกระบุด้วยผลกระทบ:
major — ส่งผลกระทบต่อสคริปต์ส่วนใหญ่ที่ใช้ฟีเจอร์นั้น; คุณจำเป็นต้องแก้ไขโค้ด
minor — API แคบ; ส่งผลเฉพาะสคริปต์ที่ใช้มันเท่านั้น
การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น หากต้องการแก้ไขโค้ดเพียงอย่างเดียว ให้ข้ามไปยัง migration checklist ที่ท้ายเอกสาร แต่ละ commit hash มีลิงก์ไปยัง diff บน GitHub
find_blobs() / find_markers() เขียนใหม่ (major)¶
image.find_blobs() / find_markers() ถูกเขียนใหม่สำหรับการติดตามด้วยสี: ตอนนี้คุณส่งค่าขีดแบ่งสี (และฟังก์ชันกรองเสริม) โดยตรง แทนที่จะทำงานบนภาพที่ผ่านการ segment มาแล้ว และผลลัพธ์เป็นรายการแบน 10-element blob tuples (พร้อมฟิลด์ color-code) แทนต้นไม้ per-color แบบซ้อน ให้แก้ไขสคริปต์ color-tracking ให้ส่งค่าขีดแบ่งสีและ iterate รายการแบน
ลบเมธอด image แบบ standalone (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() และ image.pixels() ถูกลบออกแล้ว ข้อมูล centroid / orientation / pixel-count ตอนนี้มีให้เป็นฟิลด์ใน blob tuples ที่คืนมาจาก find_blobs()
Commits: 9e5d379c1
เปลี่ยนชื่อเมธอด Imlib (major)¶
เมธอด image หลายรายการถูกเปลี่ยนชื่อ/แก้ไข: image.subimg() → image.copy(), image.blit() → image.replace() และ image.blend() ถูกเปลี่ยนให้ตรงกับการดำเนินการ two-image อื่นๆ เมธอด image.scale() / scaled() / rainbow() ถูกลบออก (rainbow ย้ายไปยัง FIR module) ให้อัพเดตการเรียกฟังก์ชันให้ใช้ชื่อใหม่
Commits: b534dc6ff
find_eyes() เปลี่ยนชื่อเป็น find_eye() (minor)¶
image.find_eyes() ถูกเปลี่ยนชื่อเป็น image.find_eye() และตอนนี้คืน 2-tuple iris (x, y) แทน eyes tuple เดิม ให้เปลี่ยนชื่อการเรียกและอัพเดตการจัดการค่าที่คืนมา
Commits: 7a01a9bed
image.compress() เปลี่ยนชื่อเป็น compressed() (minor)¶
image.compress() (ซึ่งคืน JPEG image ใหม่) ถูกเปลี่ยนชื่อเป็น image.compressed(); image.compress() ใหม่จะบีบอัดภาพ in-place และคืน None แทน image.save() ยังได้รับ keyword quality= และตอนนี้คืน None แทน True ให้แก้ไข img.compress(q) (ที่คาดหวังภาพที่คืนมา) เป็น img.compressed(quality=q)
Commits: 367e5fdd3
Migration checklist¶
สำหรับการแก้ไขให้เข้ากับ v1.4.0 งานทั่วไปที่ต้องทำ:
แก้ไขโค้ด color-tracking ให้ส่งค่าขีดแบ่งสีไปยัง
find_blobs()/find_markers()และ iterate รายการ blob-tuple แบบแบน (การเขียน find_blobs ใหม่)อ่านข้อมูล centroid / orientation / pixel จาก blob tuples แทนเมธอด standalone ที่ถูกลบออก (เมธอด image ที่ถูกลบ)
เปลี่ยนชื่อ
subimg→copy,blit→replace, แก้ไขการเรียกblend()และแทนที่scale/scaled/rainbow(การเปลี่ยนชื่อ imlib)เปลี่ยนชื่อ
find_eyes()→find_eye()(การเปลี่ยนชื่อ find_eye) และcompress()→compressed()(การเปลี่ยนชื่อ compress)
สคริปต์อื่นๆ ทั้งหมดทำงานได้โดยไม่ต้องเปลี่ยนแปลง