Metadata-Version: 2.1
Name: pyxy3d
Version: 0.0.15
Summary: GUI tool for calibrating motion capture systems composed of multiple standard webcams
Keywords: opencv,tracking,calibration,python,webcam
Author-email: Mac Prible <prible@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Dist: numpy==1.23.3
Requires-Dist: opencv-contrib-python==4.6.0.66
Requires-Dist: pyqt6==6.4.0
Requires-Dist: scipy==1.9.2
Requires-Dist: pandas==1.5.2
Requires-Dist: pyqtgraph==0.13.1
Requires-Dist: pyopengl
Requires-Dist: toml
Requires-Dist: seaborn
Requires-Dist: black ; extra == "dev"
Requires-Dist: bumpver ; extra == "dev"
Requires-Dist: isort ; extra == "dev"
Requires-Dist: pip-tools ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Project-URL: repository, https://github.com/mprib/pyxy3d
Provides-Extra: dev


# Introduction

Pyxy3d (*pixie-3D*) is a python package for converting 2D (x,y) point data from multiple cameras into 3D position estimates. The core calibration is built on top of [OpenCV](https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html) with additional optimization via [SciPy](https://scipy-cookbook.readthedocs.io/items/bundle_adjustment.html). 

While OpenCV and SciPy have long provided the software tools that enable this multi-camera calibration, assembling the required images and shepherding their resulting data through the processing gauntlet has remained both tedious and error prone. Pyxy3d automates that workflow through a GUI to provide fast, accurate, and consistent camera system calibrations.

This project was inspired by [Anipose](https://www.sciencedirect.com/science/article/pii/S2211124721011797https://www.sciencedirect.com/science/article/pii/S2211124721011797) and seeks to provide similar functionality with improved visual feedback to the user. The calibration process is presented in more granular steps, with a particular emphasis on accurate estimation of camera intrinsics. Because stereocalibration is used to initialize an estimate of relative camera positions, the bundle adjustment process converges quickly to a reasonable optimum.


