Skip to content

MJAHMADEE/SURF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SURF Feature Matching and Image Stitching with OpenCV 🖼️🔍

Python OpenCV License Open in Colab

Welcome to the SURF Feature Matching and Image Stitching repository! This project demonstrates the use of OpenCV's SURF (Speeded-Up Robust Features) algorithm to detect keypoints, match features, and stitch images together. 🌟

Table of Contents

Installation 📥

To get started, you'll need to install the necessary packages and clone the required repositories.

  1. Install necessary packages:

    • cmake
    • libopencv-dev
  2. Clone the OpenCV repository and its extra modules from GitHub.

  3. Create a build directory and configure OpenCV with CMake, enabling non-free modules.

  4. Build and install OpenCV.

Usage 🚀

Here's a step-by-step guide to use the provided script:

  1. Import necessary libraries: Ensure you have the following libraries imported:

    • cv2
    • matplotlib.pyplot
    • numpy
    • os
  2. Load and process images: Write a function to check if the image is loaded correctly, and then load and process the images for keypoint detection.

  3. Detect keypoints using SURF and match features: Use the SURF algorithm to detect keypoints and compute descriptors for the images.

  4. Draw keypoints and match them: Utilize the Brute Force Matcher to find the best matches between the images and apply ratio tests to filter good matches.

  5. Warp images and display the stitched image: Define a function to warp the images based on homography and display the final stitched image.

Example Output 📸

Key Point Detectors 1

Key Point Detectors1

Key Point Detectors 2

Key Point Detectors2

Matching Features with All the Detectors

Matching Features with all the Detectors

Matching the Features

Matching the Features

Naive Warping

Naive Warping

Better Warping

Better Warping

Contributing 🤝

Contributions are welcome! Feel free to open an issue or submit a pull request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

License 📜

This project is licensed under the MIT License. See the LICENSE file for details.


🌟 Happy Coding! 🌟

About

Image Matching Using SURF in Google Colab

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published