Skip to main content

No project description provided

Project description

calib-targets Python bindings

These bindings expose a native-feeling Python API backed by Rust (PyO3 + maturin).

Build & develop

pip install maturin
maturin develop
python -c "import calib_targets as ct; print(ct.detect_chessboard)"

Public API

Top-level detectors return typed dataclasses:

  • detect_chessboard(image, *, chess_cfg=None, params=None) -> ChessboardDetectionResult | None
  • detect_charuco(image, *, chess_cfg=None, params) -> CharucoDetectionResult
  • detect_puzzleboard(image, *, chess_cfg=None, params) -> PuzzleBoardDetectionResult
  • detect_marker_board(image, *, chess_cfg=None, params=None) -> MarkerBoardDetectionResult | None
  • render_target_bundle(document) -> GeneratedTargetBundle
  • write_target_bundle(document, output_stem) -> WrittenTargetBundle

Configuration is typed-only (dataclasses):

  • ChessConfig, ChessCornerParams, CoarseToFineParams, PyramidParams
  • ChessboardParams, OrientationClusteringParams, GridGraphParams
  • CharucoBoardSpec, CharucoDetectorParams, ScanDecodeConfig
  • PuzzleBoardSpec, PuzzleBoardParams, PuzzleBoardDecodeConfig
  • MarkerCircleSpec, MarkerBoardLayout, CircleScoreParams, CircleMatchParams, MarkerBoardParams
  • PageSize, PageSpec, RenderOptions, ChessboardTargetSpec, CharucoTargetSpec, MarkerBoardTargetSpec, PuzzleBoardTargetSpec, PrintableTargetDocument

Enums and literals:

  • TargetKind, CirclePolarity, MarkerLayout
  • DictionaryName (Literal) and DICTIONARY_NAMES

Inputs

  • image must be a 2D numpy.ndarray with dtype=uint8.
  • chess_cfg must be ChessConfig | None.
  • params must be typed params dataclasses (or None where allowed).
  • Dict/mapping inputs are intentionally rejected in the new API.

Results and compatibility

Result models are dataclasses with attribute access and editor navigation. Every config/result model provides:

  • to_dict()
  • from_dict(...)

This is the compatibility path for JSON pipelines and legacy dict-based code.

Migration guide

Old usage New usage
detect_chessboard(img, params={"min_corners": 16}) detect_chessboard(img, params=ChessboardParams(min_corners=16))
detect_charuco(..., params={"board": {...}}) detect_charuco(..., params=CharucoDetectorParams(board=CharucoBoardSpec(...)))
result["detection"]["corners"] result.detection.corners
N/A result.to_dict() / ResultType.from_dict(...)

Examples

pip install pillow
python examples/detect_chessboard.py path/to/image.png
python examples/detect_charuco.py path/to/image.png
python examples/detect_puzzleboard.py path/to/image.png
python examples/detect_marker_board.py path/to/image.png
python examples/generate_printable.py tmpdata/printable/charuco_a4

For the canonical printable-target JSON model, the repo-local CLI flow, and print-at-100%-scale guidance, see the workspace printable-target guide: https://vitalyvorobyev.github.io/calib-targets-rs/printable.html

Implementation note

The compiled module is internal (calib_targets._core). Public API stability is guaranteed only for top-level calib_targets exports.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calib_targets-0.6.0.tar.gz (276.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

calib_targets-0.6.0-cp310-abi3-win_amd64.whl (789.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

calib_targets-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

calib_targets-0.6.0-cp310-abi3-macosx_11_0_arm64.whl (925.5 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file calib_targets-0.6.0.tar.gz.

File metadata

  • Download URL: calib_targets-0.6.0.tar.gz
  • Upload date:
  • Size: 276.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for calib_targets-0.6.0.tar.gz
Algorithm Hash digest
SHA256 938497f3adc7fe5e38c738ebd1e83d2f6b5ee93b31c002fe132898edf8a489df
MD5 3db4bffe5f7be3eb28baf5eb7d3f97fc
BLAKE2b-256 0ebdd53d374918db30a63dbdb89415f36108917e1463b109f4ab63399e1f0aea

See more details on using hashes here.

Provenance

The following attestation bundles were made for calib_targets-0.6.0.tar.gz:

Publisher: release-pypi.yml on VitalyVorobyev/calib-targets-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calib_targets-0.6.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for calib_targets-0.6.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bdc49693bfdbc3f9a1114f503d484dab7b32f0d187f8c235eb456ea057e191bd
MD5 e4267dbe0408993d1bad18faca8ca5f4
BLAKE2b-256 497dad098fe8425928b570767fef15f13895843155f89195378872e6043c5a9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for calib_targets-0.6.0-cp310-abi3-win_amd64.whl:

Publisher: release-pypi.yml on VitalyVorobyev/calib-targets-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calib_targets-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for calib_targets-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28afb4eaa0a9bfe382ca1eb8b9ea048d3a06470dd07090acc2a4ca26ae8326a8
MD5 31f90d97a25176b83e2569c279cd7073
BLAKE2b-256 6d7a3e7866e3c6c8a0134654e9156bbaf3e78340a32e9e7c8320a9871331a5ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for calib_targets-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-pypi.yml on VitalyVorobyev/calib-targets-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calib_targets-0.6.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for calib_targets-0.6.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3d68580e120501e087867e0d4867931b956656a73d4c00ec9d2b7fc45fc087d
MD5 8bf5f4bdb3bd66eb83631c0b3a69955e
BLAKE2b-256 654963bc8dda23255bebbe2d645f749ecf83adcae7f32a75583a2c4621f8c68b

See more details on using hashes here.

Provenance

The following attestation bundles were made for calib_targets-0.6.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on VitalyVorobyev/calib-targets-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page