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.2.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.2-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vr_assignment_rutul-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 ef0c1e340faa396be10b1d8ff36b5fadd6eedd6c6ee856f0fa50db57f0434d30
MD5 7f3c20c385bf9bb1aa2dad1152462abb
BLAKE2b-256 383465a90664a3a00bd4f77b58daf11ac1a7865f1b9257aeffc3483bc1869ccd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vr_assignment_rutul-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4ecb10870e811eade9faeb662cecad8c22f5092435194f3f93f1427b778daddd
MD5 870314903b49cdbe579b4acf4f333767
BLAKE2b-256 6af08d1603b264c1b1cdde697017cfd537e448fb32fa9fdeb4f2a7a072869b7a

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