v4.5.5

v4.5.5 เป็นรุ่นบำรุงรักษาขนาดเล็กที่มุ่งเน้นที่ความสอดคล้องของแคช image-buffer, ความน่าเชื่อถือในการรีเซ็ตเซนเซอร์ และการจัดระเบียบ morphology API

Highlights

  • การจับภาพที่น่าเชื่อถือยิ่งขึ้น — บัฟเฟอร์วิดีโอตอนนี้ถูก cache-invalidated ก่อนใช้งาน และเพิ่มความล่าช้าหลังการรีเซ็ต/ปิดเซนเซอร์

  • Breaking: ksize ของ morph() ตอนนี้เป็น positional และเมธอด pooling ที่ล้าสมัยถูกลบออก (ดูการเปลี่ยนแปลง breaking)

Other changes and improvements

  • เพิ่มความล่าช้าหลังการรีเซ็ตเซนเซอร์/ปิดเครื่องเพื่อการเริ่มต้นกล้องที่น่าเชื่อถือยิ่งขึ้น (Portenta H7 ใช้ค่า override สำหรับความล่าช้าเหล่านี้สำหรับเซนเซอร์ของตัวเอง)

Bug fixes

  • แก้ไขการตรวจสอบ mask ของ erode()

  • บัฟเฟอร์วิดีโอตอนนี้ถูก cache-invalidated ก่อนส่งคืน เพื่อป้องกันข้อมูลภาพที่ล้าสมัย/เสียหาย

  • i.MX RT: การถ่ายโอนกล้องจะลองใหม่หาก DMA ยังไม่ว่าง; STM32: สถานะบัฟเฟอร์วิดีโอถูกรีเซ็ตเมื่อเฟรมถูกทิ้ง

Breaking API changes

การเปลี่ยน API ที่มองเห็นได้ระหว่าง v4.5.4 และ v4.5.5

การเปลี่ยนแปลงแต่ละรายการถูกติดแท็กตามผลกระทบ:

  • minor — API แคบ; ส่งผลกระทบเฉพาะสคริปต์ที่ใช้มัน

  • behavior — API เดิม, ผลลัพธ์ต่างออกไป; ตรวจสอบสคริปต์ที่ปรับแต่งแล้วอีกครั้ง

การเปลี่ยนแปลงจัดกลุ่มตามผลกระทบตามลำดับนั้น แฮชของ commit แต่ละรายการลิงก์ไปยัง diff บน GitHub

morph() ksize positional; pooling ถูกลบออก (minor)

อาร์กิวเมนต์ขนาดเคอร์เนล ksize ของ morph() ตอนนี้เป็น positional argument ตระกูลเมธอด pooling Image.pool() ที่ล้าสมัยถูกลบออก

Commits: f92896589, 08ca21fd1

การแยกวิเคราะห์อาร์กิวเมนต์การแปลงภาพที่เป็นมาตรฐาน (behavior)

เมธอดการแปลงภาพ (Image.to_*() / to()) ถูกย้ายไปใช้ argument parser mp_arg_parse_all ที่เป็นมาตรฐาน การเรียกที่พึ่งพาลำดับ positional/keyword เดิมอาจต้องปรับ

Commit: 3fee02ffb

Migration checklist

สำหรับการพอร์ตที่สะอาดไปยัง v4.5.5: ส่ง ksize ของ morph() แบบ positional, ลบการใช้งานเมธอด pooling ที่ถูกลบออก (การเปลี่ยนแปลง morphology) และตรวจสอบลำดับอาร์กิวเมนต์ในการเรียกการแปลงภาพอีกครั้ง (การเปลี่ยนแปลง conversion-parsing)