一維條碼解碼

框架已能解碼 QR Code(read_qr),但缺少能讀取 一維 條碼(EAN-13 / EAN-8 / UPC-A / Code-128)的功能——這些正是商品、庫存標籤與物流面單上最常見的條碼,也是 桌面或自助機自動化最需要從商品畫面讀取的資訊。read_barcodes 透過 OpenCV 的 cv2.barcode.BarcodeDetector 補上這一塊。

解碼步驟是一個**可注入接縫**:預設解碼器呼叫 OpenCV,但測試(或其他引擎)可以傳入 自己的 decoder 可呼叫物件,因此此功能可在無頭環境下完整單元測試,且能優雅降級 ——若 OpenCV 編譯時未含 barcode 模組,僅回傳空清單而非拋出例外。不匯入 PySide6

無頭 API

from je_auto_control import read_barcodes

# 解碼螢幕上目前所有一維條碼
for code in read_barcodes():
    print(code["type"], code["text"], code["points"])

# 限定區域,或改為解碼已存檔的影像
read_barcodes(region=[0, 0, 400, 200])
read_barcodes("label.png")

read_barcodes(source=None, *, region=None, decoder=None) 回傳 {"text", "type", "points"} 字典清單,每偵測到一個條碼一筆(points 為影像 座標中的四角多邊形)。source 可為影像路徑或陣列;省略時擷取螢幕(可選擇以 region 裁切)。灰階轉換重用共用的 visual_match haystack 載入器,不新增 影像載入程式碼。

執行器指令

AC_read_barcodes``(``source / region{count, barcodes})以 MCP 工具 ``ac_read_barcodes``(唯讀)及 Script Builder 指令 Read Barcodes (1-D)**(位於 **OCR 分類下)形式提供。