影像品質評分(銳利度 / 對比 / 亮度門檻)

OCR 與模板比對在模糊、褪色或太暗的擷取畫面上會悄悄失敗——定位回傳空值,呼叫端無法分辨是元素 不存在*還是畫面*無法辨識image_quality 量測三項會破壞辨識的指標並據以把關:

  • sharpness(銳利度)——Laplacian 的變異數(低 = 模糊 / 失焦),

  • contrast(對比)——灰階的標準差(低 = 褪色),

  • brightness(亮度)——灰階平均 0–255(太低 = 太暗,太高 = 過曝)。

image_quality() 回傳原始指標,:func:is_blurry 是常用的一行式,:func:quality_gate 把 指標轉成通過 / 失敗的判定並附上具名問題,讓腳本可以拒絕對壞畫面做 OCR(或先做前處理)。它重用 visual_match 的灰階載入器,因此來源可為任何 ndarray / 路徑 / PIL 影像(省略時則為存活螢幕); cv2 / numpy 為延遲匯入。不匯入 PySide6

無頭 API

from je_auto_control import image_quality, is_blurry, quality_gate

image_quality("frame.png")
# {"sharpness": 842.1, "contrast": 58.3, "brightness": 131.0}

if is_blurry("frame.png", threshold=100):
    ...  # 在 OCR 前重新擷取 / 銳化

gate = quality_gate("frame.png", min_sharpness=100, min_contrast=12)
# {"sharpness": .., "contrast": .., "brightness": .., "passed": False,
#  "issues": ["blurry", "too_dark"]}

quality_gate 會標記 blurry / low_contrast / too_dark / too_bright;只有在沒有任何問題時 passed 才為 True。region 套用於存活螢幕擷取(省略 source 即評分螢幕)。門檻可調整;預設值適合一般 UI 截圖。

執行器指令

AC_image_quality``(``source / region)與 AC_quality_gate``(另加 ``min_sharpness / min_contrast)。皆以唯讀 ac_* MCP 工具及 Script Builder 指令 (位於 Image 分類下)形式提供。