PyMVG is a Python implementation of various computational camera geometry operations.
- triangulate 2D features from multiple calibrated cameras into a single 3D point (using algorithm from the classic textbook by Hartley & Zisserman). [example]
- load/save camera calibrations from ROS (which uses OpenCV)
- load/save camera system calibrations from MultiCamSelfCal
- complete implementation of OpenCV camera model in pure Python in a single file for easy understanding
- complete implementation of DLT camera calibration procedure
- completely vectorized code for rapid operation on many points using numpy
- completely written in Python
- plotting utilities [example 1] [example 2]
It contains a complete re-implementation of the OpenCV camera model and can thus use calibrations made by or for OpenCV. PyMVG is entirely written in Python, and thus – depending on your preferences – it may be significantly easier to understand than the equivalent OpenCV implementation. PyMVG makes extensive use of numpy, and thus when called on large batches of points, is no slower than native code.
See also opengl-hz.