UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

107 lines (82 loc) 3.67 kB
--- name: opencv description: "Build OpenCV image and video processing workflows with transforms, contours, capture, and classical vision operations." category: scientific risk: safe source: self source_type: self date_added: "2026-08-26" tags: ["opencv", "computer-vision", "image-processing", "python", "video", "claude"] tools: ["claude", "cursor", "gemini", "codex"] --- # OpenCV Computer Vision AI Skill Guide ## Overview & Engine Architecture OpenCV (`cv2`) provides image/video IO, geometric and photometric transforms, classical feature detectors, and drawing utilities. Images are NumPy arrays in BGR order by default. Agents track color-space conversions explicitly, keep resize/crop parameters reproducible, release video captures, and push deep-learning detection to `@pytorch` / `@huggingface-transformers` when classical methods plateau. ``` imread / VideoCapture -> BGR ndarray -> cvtColor / resize / filter / threshold -> contours / features / write ``` ## When to use this skill - Preprocessing images for ML models - Classical detection (edges, contours, template match) - Frame sampling and annotation from video ## Operational directives 1. Remember `cv2.imread` returns BGR - convert before RGB-only libraries. 2. Check for `None` after reads; fail fast on missing paths. 3. Use `cv2.IMREAD_COLOR` / unchanged flags intentionally for alpha/bit depth. 4. Release `VideoCapture` / writers in `finally` blocks. 5. Do not hardcode absolute machine-specific GUI paths in headless servers (`imshow` needs a display). ## Image preprocess example ```python import cv2 from pathlib import Path path = Path("samples/part.jpg") bgr = cv2.imread(str(path), cv2.IMREAD_COLOR) if bgr is None: raise FileNotFoundError(path) rgb = cv2.cvtColor(bgr, cv2.COLOR_BGR2RGB) resized = cv2.resize(bgr, (640, 480), interpolation=cv2.INTER_AREA) gray = cv2.cvtColor(resized, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (5, 5), 0) edges = cv2.Canny(blur, 50, 150) cv2.imwrite("out/edges.png", edges) ``` ## Contours sketch ```python _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) vis = resized.copy() cv2.drawContours(vis, contours, -1, (0, 255, 0), 2) ``` ## Video frame sample ```python cap = cv2.VideoCapture("clips/line.mp4") try: ok, frame = cap.read() if ok: cv2.imwrite("out/frame0.jpg", frame) finally: cap.release() ``` ## Common failures | Symptom | Cause | Fix | | --- | --- | --- | | Wrong colors in matplotlib | BGR vs RGB | `cvtColor` | | `imread` None | path/Unicode/cwd | resolve Path; check exists | | GUI crash headless | `imshow` without display | write files; use notebooks | | Slow loops | pure Python per pixel | vectorized NumPy/OpenCV ops | ## Best practices - Keep calibration matrices and resize shapes with dataset versions. - Normalize orientation via EXIF when feeding photos from phones. - Use lossless PNG for intermediate masks; JPEG for previews. - Combine with `@pytorch` for DNN modules (`cv2.dnn`) only when appropriate. ## Limitations - Not a full video editing suite (see dedicated video skills when present). - Patent/licensing constraints may affect some algorithms in deployments. - GPU modules (`cuda`) depend on build flags and drivers. ## Related skills - `@pytorch` / `@huggingface-transformers` - learned vision models - `@jupyter` - interactive visualization of intermediates - `@ffmpeg` - heavy video transcoding outside OpenCV