Skip to main content

Coin Detection and Panorama Stitching

Project description

Coin Detection & Panorama Stitching

Part 1: Coin Detection

Overview

This module processes an input image to detect and extract individual coins using image processing techniques.

Steps Involved

  1. Preprocessing (preProcessingImage)

    • Converts the image to grayscale for simplified processing.
    • Resizes the image to maintain consistency.
    • Applies Gaussian blur and adaptive thresholding to enhance edge detection.
  2. Edge Detection (edgeDetection)

    • Identifies contours in the thresholded image.
    • Analyzes shape properties such as circularity and area to detect coin-like structures.
    • Draws detected edges on the original image.
  3. Region-Based Segmentation (segmentCoins)

    • Generates a mask using detected contours.
    • Isolates the coin regions from the original image.
  4. Extracting Individual Coins (extractEachCoin)

    • Determines the minimum enclosing circle for each detected coin.
    • Uses bitwise operations to isolate and crop each coin.
  5. Counting Coins (countCoins)

    • Computes the total number of detected coins from the segmented results.

How to Run

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Navigate to the part1 directory:

    cd part1
    
  3. Run the detection script:

    python coinDetection.py <input_image_path> <output_dir>
    
  4. Example Run:

    python coinDetection.py coins/0.jpg output/
    

Output Files

  • Edges_on_image.jpg – Image with detected coin edges outlined.
  • coin_segmented.jpg – Image with extracted coin regions.
  • coinX.jpg – Individual cropped images of each detected coin.

Part 2: Panorama Stitching

Overview

This module stitches multiple images together to create a seamless panorama using feature detection and homography estimation.

Steps Involved

  1. Feature Detection & Extraction (siftDetectDescriptor)

    • Detects key points and extracts feature descriptors using the SIFT algorithm.
  2. Keypoint Matching (interestPointMacher)

    • Matches keypoints between image pairs using BFMatcher and Lowe’s ratio test.
  3. Homography Estimation (interestPointMacher)

    • Computes the transformation matrix (homography) for image alignment.
    • Utilizes RANSAC to filter outliers and refine accuracy.
  4. Image Warping & Blending (stichImages)

    • Aligns images using the computed transformation.
    • Blends overlapping regions to create a seamless transition.
  5. Cropping Unwanted Regions (cropBlackRegion)

    • Removes black borders caused by perspective transformation.
    • Extracts only the meaningful content of the stitched image.

How to Run

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Navigate to the part2 directory:

    cd part2
    
  3. Run the panorama stitching script:

    python panorama.py <input_directory> <output_directory>
    
  4. Example Run:

    python panorama.py input1/ output/
    

Output Files

  • stitched_image_X.jpg – Visualization of matched keypoints between consecutive images.
  • panorama.jpg – The final stitched panorama image.

Notes

  • Ensure images for stitching have sufficient overlap for feature matching.
  • The quality of results depends on image alignment and lighting conditions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vr_assignment_rutul-0.1.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vr_assignment_rutul-0.1.0-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file vr_assignment_rutul-0.1.0.tar.gz.

File metadata

  • Download URL: vr_assignment_rutul-0.1.0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vr_assignment_rutul-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dfd44b402d312f943d3af4abd8caed5d8a8d3f57251aa31842d312009c1493ba
MD5 6b7b4e83319670ca04e3f7c3da547e3e
BLAKE2b-256 edd5f718aa5b5c70622e14173c6f5b26860a60b144c2117476df89cd4e433954

See more details on using hashes here.

File details

Details for the file vr_assignment_rutul-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vr_assignment_rutul-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bf4cb76f7488b5ffb5d4cc00a0fb668ef72822b1903f2f291bb53d62424fb68
MD5 1bcb1d8a4ad92f8f14bad4f1b5feb3ab
BLAKE2b-256 ab2ffe218a2ebf1925046a09d9fdccedd4e4a6277278a77639e85f8628719134

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page