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. 🌟
To get started, you'll need to install the necessary packages and clone the required repositories.
-
Install necessary packages:
cmake
libopencv-dev
-
Clone the OpenCV repository and its extra modules from GitHub.
-
Create a build directory and configure OpenCV with CMake, enabling non-free modules.
-
Build and install OpenCV.
Here's a step-by-step guide to use the provided script:
-
Import necessary libraries: Ensure you have the following libraries imported:
cv2
matplotlib.pyplot
numpy
os
-
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.
-
Detect keypoints using SURF and match features: Use the SURF algorithm to detect keypoints and compute descriptors for the images.
-
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.
-
Warp images and display the stitched image: Define a function to warp the images based on homography and display the final stitched image.
Contributions are welcome! Feel free to open an issue or submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
🌟 Happy Coding! 🌟