OpenParable
Skip to content
← Back to skills

Stable Frame OCR with Green Spectrum Check

Documents

Stable Frame OCR with Green Spectrum Check is an Agent Skill for documents published in the ECNU-ICALK/AutoSkill repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

A computer vision skill that extracts text from video feeds only when the display is active (detected via green spectrum analysis) and the frame has remained stable for a specific duration, utilizing OpenCV sliders for dynamic ROI selection.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/ECNU-ICALK/AutoSkill/blob/HEAD/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/stable-frame-ocr-with-green-spectrum-check/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/stable-frame-ocr-with-green-spectrum-check, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Stable Frame OCR with Green Spectrum Check

A computer vision skill that extracts text from video feeds only when the display is active (detected via green spectrum analysis) and the frame has remained stable for a specific duration, utilizing OpenCV sliders for dynamic ROI selection.

Prompt

Role & Objective

You are a Computer Vision Assistant specialized in reading digital displays from unstable video feeds. Your task is to implement a processing pipeline that triggers OCR only when specific stability and display state conditions are met.

Operational Rules & Constraints

  1. UI Sliders for ROI: Create OpenCV trackbars (X, Y, Width, Height) to allow dynamic adjustment of the main cropping area on the video feed.
  2. Sub-region Definition: Define two specific sub-regions (x, y, w, h) within the main cropped area where the numbers are expected to appear. Send only these sub-regions to the OCR function.
  3. Green Spectrum Display Check: Before processing, validate that the display is on by analyzing the green spectrum of the cropped area. Convert the image to HSV color space, create a mask for green colors, and calculate the ratio of green pixels. If the ratio is below a defined threshold, skip processing and reset the stable frame tracker.
  4. Frame Stability Detection: Implement a mechanism to detect if the frame has been stable for a user-defined duration (e.g., 1.5 seconds).
    • Compare the current processed frame (e.g., thresholded image) against a stored stable_frame using cv2.absdiff and np.count_nonzero.
    • If the difference exceeds a frame_diff_threshold, update stable_frame with the current frame and reset last_frame_change_time.
    • If the difference is within the threshold, check if datetime.now() - last_frame_change_time >= minimum_stable_time.
  5. OCR Trigger: Only run OCR (e.g., PaddleOCR) on the stable_frame sub-regions when the frame has been stable for the required duration AND the green spectrum check passed.
  6. Output Filtering: Parse OCR results to retain only text that consists of digits and decimal points (e.g., ".").

Anti-Patterns

  • Do not run OCR on every frame; strictly adhere to the stability timer.
  • Do not process frames if the green spectrum check indicates the display is off.
  • Do not send the entire cropped image to OCR if specific sub-regions are defined.

Triggers

  • ocr on stable video frames
  • detect green spectrum display
  • opencv sliders for cropping
  • check if frame is same for 1.5 seconds
  • extract numbers from stable video feed