diff --git a/README.md b/README.md index a0162d6..7186ba5 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,33 @@ -# image-matcher +# Image-Matcher -Add-on for Blender that allows matching multiple 2D images to a corresponding 3D model. This uses OpenCV's Perspective-n-Point solver to estimate camera intrinsics (e.g. focal length, distortion coefficients) and extrinsics (camera position and orientation) based on pairs of 2D and 3D points. +## A Blender Add-on for 2D-3D Image Matching and Camera Pose Estimation -This add-on builds on RT Studio's Camera Pnpoint Blender plugin: +Image-Matcher is a Blender add-on that allows matching multiple 2D images to a corresponding 3D model. This tool uses OpenCV's Perspective-n-Point solver to estimate camera intrinsics (e.g., focal length, distortion coefficients) and extrinsics (camera position and orientation) based on pairs of 2D and 3D points. + +This project is a fork of [K-Meech's image-matcher](https://github.com/K-Meech/image-matcher), with improvements made by the Center for Spatial Technologies (CST) team. We extend our sincere gratitude to the original developers and contributors for their excellent work. + +Originally builds on RT Studio's Camera Pnpoint Blender plugin: https://rtstudios.gumroad.com/l/camera_pnpoint / https://github.com/RT-studios/camera-pnpoint Do consider buying their addon on gumroad/blender market to help support them making great Blender addons! -This plugin adds: -- Easier matching of multiple 2D images -- Point mode to allow one click addition of 2D/3D points -- UI to visualise list of points for each image -- Easier adjustment of camera parameters / background image directly in the plugin UI -- Export of camera parameters to JSON +## Key Features and Improvements -For more information on the Perspective-n-Point process, see OpenCV's documentation: https://docs.opencv.org/4.x/d5/d1f/calib3d_solvePnP.html +Our fork builds upon the original plugin with several enhancements: + +1. **Enhanced Animation Support**: Improved functionality for creating smooth camera animations between matched positions. +2. **Frame-by-Frame Solving**: Added capability to solve camera pose for each frame in a sequence. +3. **Keyframe Management**: New features to update camera poses for existing keyframes. ## Installation + Tutorials - There's a full video tutorial of installation + image matching on youtube: https://www.youtube.com/watch?v=3gHtWkfxcvo - For installation instructions, see: [Installation](./docs/installation.md) - For a step by step tutorial of image matching, see: [Image matching tutorial](./docs/image-matching.md) -- For a tutorial of making a video moving between each matched position, see: [Video tutorial](./docs/video.md). Note: this tutorial is advanced, and assumes prior Blender experience! - -## Examples -You can see an example video moving between matched positions here: https://www.youtube.com/watch?v=zqXh3yGqvkA This uses publicly available data of the Ramesses II statue from the British Museum (data from [Sketchfab](https://sketchfab.com/3d-models/ramesses-ii-c98e1cab68134f4283f0448966f0835b) and [Collection Online](https://www.britishmuseum.org/collection/object/Y_EA19)) +## Contributing -![Example match on Ramesses II statue](./docs/images/example-match.jpg) -## Releases +We welcome contributions to further improve this tool. Please submit issues or pull requests through GitHub. -Github Actions runs on this repository to automatically create releases when a -commit is pushed to main with a version tag like v1.0.0. This will automatically -create a zip file with only the required python files for installation in Blender. +--- -To trigger this: -``` -# Add a tag to last commit (on main) -git tag v1.0.0 -git push origin --tags -``` +For more information on the Perspective-n-Point process, see [OpenCV's documentation](https://docs.opencv.org/4.x/d5/d1f/calib3d_solvePnP.html).