v2.5.0¶
v2.5.0 是一個功能豐富的影像處理版本:它新增了 find_rects()、find_circles()、get_regression()(直線/迴歸擬合)、find_number()(LeNet 數字)、ImageWriter / ImageReader 串流類別、sensor.flush() / width() / height(),以及 pyb.RTC 支援。影像載入現在以 framebuffer 為基礎 — 請閱讀下方的破壞性變更。
重點摘要¶
image.find_rects()— 矩形/四邊形偵測器,帶有角點輸出。image.find_circles()— Hough 圓形偵測。image.get_regression()— 最小平方法與穩健(Theil-Sen)直線擬合。image.find_number()— LeNet 數字辨識。ImageWriter/ImageReader— 錄製與播放影像串流。pyb.RTC支援,以及sensor.flush()/sensor.width()/sensor.height()。破壞性變更: 影像載入現在以 framebuffer 為基礎,若影像過大則會引發例外 — 請參閱破壞性變更。
新功能¶
特徵偵測 — 新增
image.find_rects()(AprilTag 四邊形偵測器;rect 物件帶有x/y/w/h/corners/magnitude)、image.find_circles()(Hough)、image.get_regression()(最小平方法 + Theil-Sen 穩健直線擬合)以及image.find_number()(LeNet 數字辨識),每項皆附帶範例指令碼。結果角點 — 為 QR-code / AprilTag / data-matrix / 條碼結果物件新增了
corners屬性。影像串流 — 新增了
image.ImageWriter/image.ImageReader類別(16 位元組對齊的區塊格式),並附帶image_writer.py/image_reader.py範例。感測器 — 新增
sensor.flush()(不進行快照即將 framebuffer 推送至 IDE)以及sensor.width()/sensor.height()。pyb.RTC— 啟用 RTC 支援,並附帶rtc.py範例。新增了一個貓臉 Haar 級聯與一個 Servo-Shield(PCA9685)範例;
openmv-cascade.py主機端工具新增了對新版 OpenCV XML 級聯格式的支援。
其他變更與改進¶
framebuffer 經過重構,使
copy_to_fb影像方法會更新 IDE 預覽;HaarCascade()路徑不再需要前置/(內建與檔案會自動偵測);GIF/MJPEG 錄製現在支援 VGA(以及 BAYER GIF);更新了內建的README.txt,且全新檔案系統上不再建立openmv.inf驅動程式檔案。
錯誤修正¶
影像處理:
修正了
find_circles()的投票累加、get_regression()在使用 ROI 時的 rho 偏移與記憶體洩漏、find_lines()的線段合併、find_blobs()的角度平均與預設(限制最少)色彩邊界、ORB 關鍵點排序穩定性/描述子排序與 matched 旗標,以及 Haar 級聯的緩衝載入(非對齊讀取)。
系統:
啟用了
pybServo 3(P9)(#256)、修正了 RTC 初始化、增加了 UART 字元逾時(#240),並修正了未初始化的感測器 framebuffer 「enabled」旗標。
硬體與開發板支援¶
破壞性 API 變更¶
v2.4.1 與 v2.5.0 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。
此破壞性變更是一項 behavior(行為)變更(API 相同,結果不同)— 請重新檢查受影響的指令碼。每個 commit hash 都連結至其在 GitHub 上的 diff。
影像載入以 framebuffer 為基礎 (behavior)¶
image.Image / 影像載入現在會將載入的影像複製到主 framebuffer 中,若影像太大而無法容納則會引發例外。先前可成功載入至堆積緩衝區的載入操作現在可能會失敗 — 請確保載入的影像能容納於 framebuffer 中(或處理新的錯誤)。
Commits: 87d53385a
遷移檢查清單¶
在您先前依賴堆積緩衝區進行影像載入的地方,請確保載入的影像能容納於 framebuffer 中(或捕捉新的「影像太大」錯誤)(影像載入變更)。其餘所有指令碼皆可不經修改直接執行。