Metadata-Version: 2.1
Name: pyxy3d
Version: 0.0.0
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"
Provides-Extra: dev


# Introduction

pyxy3d (*pixie-fi*) 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 refinement via [SciPy optimization](https://scipy-cookbook.readthedocs.io/items/bundle_adjustment.html). 

These software calibration tools have long been available, but assembling the images and shepherding the resulting data through the necessary stages of processing is laborious 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.


