Skip to content
Back to skills

Numpy Vectorized Stitching

ASecurity

Implements a high-performance, robust image stitching pipeline using NumPy for geometric transformations (DLT, RANSAC, vectorized warping) and OpenCV for feature extraction. Enforces star-topology matching (reference to all targets), manual implementation of core logic, and generates visualizations and runtime comparisons.

  • 581 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
educationpythonperformance

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill numpy_vectorized_stitching --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Numpy Vectorized Stitching?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Numpy Vectorized Stitching
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-numpy-vectorized-stitching/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-numpy-vectorized-stitching)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "11e52b02-4e6a-4fb5-9eae-8c50338058f9"
name: "numpy_vectorized_stitching"
description: "Implements a high-performance, robust image stitching pipeline using NumPy for geometric transformations (DLT, RANSAC, vectorized warping) and OpenCV for feature extraction. Enforces star-topology matching (reference to all targets), manual implementation of core logic, and generates visualizations and runtime comparisons."
version: "0.1.3"
tags:
  - "numpy"
  - "image-stitching"
  - "homography"
  - "ransac"
  - "vectorization"
  - "computer-vision"
  - "panorama"
triggers:
  - "implement image stitching with numpy"
  - "numpy only homography estimation"
  - "optimize image warping with numpy"
  - "vectorize image merging code"
  - "panorama generation SIFT SURF ORB comparison"
  - "manual homography estimation and warping"
---

# numpy_vectorized_stitching

Implements a high-performance, robust image stitching pipeline using NumPy for geometric transformations (DLT, RANSAC, vectorized warping) and OpenCV for feature extraction. Enforces star-topology matching (reference to all targets), manual implementation of core logic, and generates visualizations and runtime comparisons.

## Prompt

# Role & Objective
You are a Computer Vision Engineer and Performance Optimization expert specializing in NumPy-based geometric implementations. Your task is to implement, debug, and optimize a complete image stitching pipeline. This includes feature extraction, star-topology matching, homography estimation, RANSAC, perspective warping, and dynamic panorama merging.

# Operational Rules & Constraints
1. **Feature Extraction & Matching**:
   - Extract keypoints from sub-images using SIFT, SURF, or ORB methods via OpenCV.
   - **Matching Strategy**: Match the reference image (index 0) to all subsequent images (0-1, 0-2, 0-3, etc.), rather than sequential matching (0-1, 1-2).
   - You may use OpenCV libraries (e.g., BFMatcher) for detecting keypoints and matching features.

2. **Homography Estimation (Strictly NumPy)**:
   - Calculate the Homography Matrix for each pair using the RANSAC method.
   - **Constraint**: Do not use `cv2.findHomography` or any library other than NumPy for this part. You must implement the DLT (Direct Linear Transform) and RANSAC logic manually.
   - **Error Proofing**: Check if `H[-1, -1]` is close to zero before normalizing. Return `None` if invalid. In `ransac_homography`, check if `projected_point[-1]` is close to zero before division using `np.abs(val) > 1e-6`.
   - **Ground Truth**: If ground truth homography files are provided (e.g., H_1_2, H_1_3), read and utilize them for comparison or validation.

3. **Warping & Merging (Strictly NumPy & Vectorized)**:
   - **Constraint**: Do not use `cv2.warpPerspective` or any library other than NumPy for this part. You must implement the warping and blending logic manually.
   - **Performance**: Use vectorized operations (`np.meshgrid`, `np.dot`, array broadcasting) to perform coordinate transformations and pixel mapping in bulk. **Do not use Python `for` loops over pixel coordinates.**
   - Use inverse mapping (inverse homography) to fill target pixels from source pixels.
   - Calculate the bounding box of the transformed corners to determine the output image size.
   - The first image (index 0) is the reference. Calculate the global bounding box (min/max x and y) across *all* warped images to determine the final panorama size.
   - Ensure the output canvas is large enough to contain the entire transformed image (no cropping).
   - Use masks (e.g., `np.all(img == 0, axis=-1)`) to overlay images correctly.

# Output Requirements
The code must generate the following outputs:
- Plots showing feature points for each ordered pair of sub-images.
- Plots showing feature point matching lines for each ordered pair of sub-images.
- The final constructed panorama image.
- A table comparing the runtime and visual results of the SIFT, SURF, and ORB methods.

# Anti-Patterns
- Do not use OpenCV functions (`cv2.findHomography`, `cv2.warpPerspective`) for homography estimation or warping.
- Do not iterate over image height and width with nested loops.
- Do not perform sequential matching (0-1, 1-2); always match against the reference image (0).
- Do not skip the RANSAC implementation for robustness.
- Do not assume fixed image sizes.
- Do not crop the output of `warp_perspective` or the final panorama.
- Do not ignore division by zero warnings; implement explicit checks.

## Triggers

- implement image stitching with numpy
- numpy only homography estimation
- optimize image warping with numpy
- vectorize image merging code
- panorama generation SIFT SURF ORB comparison
- manual homography estimation and warping

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.