vision-calibration-py
Python bindings for calibration-rs.
This crate exposes high-level calibration workflows from vision-calibration:
- planar intrinsics
- single-camera hand-eye
- rig extrinsics
- rig hand-eye
- laserline device
- scheimpflug intrinsics
Build locally
maturin develop -m crates/vision-calibration-py/Cargo.toml
Python package
The Python package name is vision_calibration.
import vision_calibration as vc
print(vc.__version__)
# Build Python-native dataset/config objects with docstrings:
obs = vc.Observation(
points_3d=[(0.0, 0.0, 0.0), (0.1, 0.0, 0.0), (0.1, 0.1, 0.0), (0.0, 0.1, 0.0)],
points_2d=[(100.0, 100.0), (200.0, 100.0), (200.0, 200.0), (100.0, 200.0)],
)
dataset = vc.PlanarDataset(views=[vc.PlanarView(observation=obs)] * 3)
config = vc.PlanarCalibrationConfig(
max_iters=80,
robust_loss=vc.robust_huber(1.0),
)
result = vc.run_planar_intrinsics(dataset, config)
print(result.mean_reproj_error)
Scheimpflug workflow:
import vision_calibration as vc
obs = vc.Observation(
points_3d=[(0.0, 0.0, 0.0), (0.1, 0.0, 0.0), (0.1, 0.1, 0.0), (0.0, 0.1, 0.0)],
points_2d=[(100.0, 100.0), (200.0, 100.0), (200.0, 200.0), (100.0, 200.0)],
)
dataset = vc.PlanarDataset(views=[vc.PlanarView(observation=obs)] * 3)
config = vc.ScheimpflugIntrinsicsCalibrationConfig(
fix_scheimpflug={"tilt_x": False, "tilt_y": False}
)
result = vc.run_scheimpflug_intrinsics(dataset, config)
print(result.camera.sensor)
Migration: hard break to typed high-level API
High-level runner functions now require typed dataset/config objects. Raw mapping/list payloads are no longer accepted by:
run_planar_intrinsicsrun_scheimpflug_intrinsicsrun_single_cam_handeyerun_rig_extrinsicsrun_rig_handeyerun_laserline_device
Before (no longer supported):
import vision_calibration as vc
result = vc.run_scheimpflug_intrinsics(
{"views": [...]},
{"max_iters": 80},
)
After (typed high-level API):
import vision_calibration as vc
dataset = vc.PlanarDataset(views=[...])
config = vc.ScheimpflugIntrinsicsCalibrationConfig(max_iters=80)
result = vc.run_scheimpflug_intrinsics(dataset, config)
If you still need raw serde payload control for migration/interop, use low-level
helpers from vision_calibration._api (for example
_run_scheimpflug_intrinsics_raw).
Runnable Python examples
Python workflow examples live in crates/vision-calibration-py/examples/ and
mirror the Rust examples from crates/vision-calibration/examples/.
Install detector dependencies for real-image examples:
./.venv/bin/python -m pip install "vision-calibration[examples]"
Run all:
for f in crates/vision-calibration-py/examples/*.py; do ./.venv/bin/python "$f"; done
Run individual examples:
./.venv/bin/python crates/vision-calibration-py/examples/planar_synthetic.py
./.venv/bin/python crates/vision-calibration-py/examples/planar_real.py
./.venv/bin/python crates/vision-calibration-py/examples/stereo_session.py
./.venv/bin/python crates/vision-calibration-py/examples/stereo_charuco_session.py
./.venv/bin/python crates/vision-calibration-py/examples/handeye_synthetic.py
./.venv/bin/python crates/vision-calibration-py/examples/handeye_session.py
./.venv/bin/python crates/vision-calibration-py/examples/rig_handeye_synthetic.py
./.venv/bin/python crates/vision-calibration-py/examples/laserline_device_session.py
Notes:
planar_real.py,stereo_session.py,stereo_charuco_session.py, andhandeye_session.pyrun detector-based corner extraction from real images usingcalib-targets.vision_calibration.typesis low-level compatibility surface for advanced interop only; prefer typed dataclasses/models for new code.
Metadata
Release files for vision-calibration 0.8.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vision_calibration-0.8.3.tar.gz | 728.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vision_calibration-0.8.3-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| vision_calibration-0.8.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| vision_calibration-0.8.3-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 7.1 MB
Release files / vision_calibration-0.8.3.tar.gz
| Download URL | vision_calibration-0.8.3.tar.gz |
|---|---|
| Size | 728.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76758bd9cd2f194c3ed2510518d862cbdfd24bbf770420600dfb34f42dcd7b29
|
|
BLAKE2b-256 checksum How to use checksums |
44fcfce65802fbf373d44e903fe4b32f376cd6a47dd0c3e68a528ae0b2fb3d3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / vision_calibration-0.8.3-cp310-abi3-win_amd64.whl
| Download URL | vision_calibration-0.8.3-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b04ab1fd5a56031d5d9f13f23e01e6d5f3b1b34758a522d2067c64ee043263c2
|
|
BLAKE2b-256 checksum How to use checksums |
8f47b2eaee602ce660d5714bac00e410d3f00a370e52ff4f3ccc466a4c83801b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / vision_calibration-0.8.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vision_calibration-0.8.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d485b1dd3a9215f485aded7c0bdb063ae566b34d81fefab55d7608c85f4d2758
|
|
BLAKE2b-256 checksum How to use checksums |
3c7f0cd05b87a897bd695488533424679780bf2c39e1729e888b83af6cbcc9a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / vision_calibration-0.8.3-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | vision_calibration-0.8.3-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7b3d8df4bf50b60a2c5f93796ac5ada3a4d7b8ddfed00fe07e94b4579f1597e7
|
|
BLAKE2b-256 checksum How to use checksums |
a44086264e2cd5c0f3f8c1bdc31f9160202108405ce3251bced90a74631bbd72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log