This project implements corner detection (FAST & Harris) and feature matching using LBP descriptors in both Python and C++ with OpenCV. It allows for feature extraction, comparison, and visualization of keypoints and matching results.
- FAST & Harris corner detection 🔥🏁
- LBP (Local Binary Pattern) descriptor matching
- Implementation in Python & C++ 💻🐍
- Comparison between custom and OpenCV's built-in implementations
- Image visualization of detected keypoints & matching results
FeatureDetection/
images/ # Image dataset for testing and results visualization
docs/ # Documentation, including research papers and result images
cpp/ # C++ implementation
src/
descriptors.cpp # Descriptors extraction and matching algorithm implementation
fast.cpp # Fast corner detection implementation
harris.cpp # Harris corner detection implementation
main.cpp # C++ entry point for testing the algorithms
python/ # Python implementation
notebooks/
main.ipynb # upyter notebook for testing the Python implementation
src/
descriptors.py # Descriptors extraction and matching algorithm implementation
fast.py # Fast corner detection implementation
harris.py # Harris corner detection implementation
requirements.txt # List of required dependencies
cmake-build-debug/ # C++ compilation and installation
README.md # Project documentation
🔹 Python (≥ 3.x)
🔹 OpenCV (for Python & C++)
🔹 CMake and g++ (for C++ version)
- Install dependencies::
pip install -r requirements.txt- Open and run the Jupyter notebook:
jupyter notebook python/notebooks/main.ipynb- Navigate to the cmake-build-debug folder:
cd cmake-build-debug- Build the C++ project using CMake:
cmake --build .- Run the compiled program:
./FeatureDetectionBelow are some example results for corner detection and feature matching:
Here are some example Harris Corner Detection results:
Here are some example 🔹 FAST Corner Detection results:
Here’s an example of feature matching using the LBP descriptor:
This project is licensed under the MIT License.


