Python bindings for the fast ChESS chessboard corner detector (Rust backend)
Project description
chess_corners (Python)
Python bindings for the chess-corners detector.
Quick start
import numpy as np
import chess_corners
img = np.zeros((128, 128), dtype=np.uint8)
cfg = chess_corners.ChessConfig()
cfg.threshold_rel = 0.2
cfg.min_cluster_size = 1
corners = chess_corners.find_chess_corners(img, cfg)
print(corners.shape, corners.dtype)
What find_chess_corners returns
find_chess_corners(image, cfg=None) returns a NumPy float32 array of shape
(N, 4) with columns:
x– subpixel x coordinate (pixels, image space)y– subpixel y coordinate (pixels, image space)response– ChESS response strength at the cornerorientation– local grid axis orientation in radians, in[0, pi)
The rows are sorted deterministically by the binding:
response (descending), then x, then y.
Input requirements:
imagemust be a 2Duint8NumPy array with shape(H, W)- it must be C-contiguous (non-contiguous arrays raise
ValueError)
ChessConfig parameters
ChessConfig mirrors the most important Rust settings. Defaults match the
Rust ChessConfig::default().
Response / detector parameters (cfg.*):
use_radius10(bool, defaultFalse)- Use the larger ring radius (r=10) instead of r=5 for response computation.
descriptor_use_radius10(Optional[bool], defaultNone)- Override the descriptor sampling ring radius; when
None, usesuse_radius10.
- Override the descriptor sampling ring radius; when
threshold_rel(float, default0.2)- Relative threshold as a fraction of the max response.
threshold_abs(Optional[float], defaultNone)- Absolute threshold; when set, it overrides
threshold_rel.
- Absolute threshold; when set, it overrides
nms_radius(int, default2)- Non-maximum suppression radius in pixels.
min_cluster_size(int, default2)- Minimum count of positive neighbors in the NMS window to accept a corner.
Multiscale parameters (cfg.*):
pyramid_num_levels(int, default3)- Number of pyramid levels (including base). Set to
1for single-scale.
- Number of pyramid levels (including base). Set to
pyramid_min_size(int, default128)- Minimum dimension to keep building the pyramid.
refinement_radius(int, default3)- Coarse-level ROI radius used for coarse-to-fine refinement.
merge_radius(float, default3.0)- Merge near-duplicate refined corners within this radius (pixels).
Development
maturin develop -m crates/chess-corners-py/pyproject.toml
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chess_corners-0.1.1.tar.gz.
File metadata
- Download URL: chess_corners-0.1.1.tar.gz
- Upload date:
- Size: 46.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8246f02520cb1af2f05e162bae71a9565a0b45c9fa3ec4b8c05b8ea9f1e75894
|
|
| MD5 |
f4330b8974fe74fc459e1bfefdfc5649
|
|
| BLAKE2b-256 |
7daf7158b059c5e18e2f9052b96498098a8954c20329216c1ad1a80252a0ae7f
|
File details
Details for the file chess_corners-0.1.1-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: chess_corners-0.1.1-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 244.5 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f22907340ebfecfa97459f68d3c3eceeaaba927f5595fe57b5932fabacf2f66
|
|
| MD5 |
91d7e01cf1d93e79524226e977471cb3
|
|
| BLAKE2b-256 |
a6f19c8c4bf9d27f52432883bbfc31d3739bb2ae026285b6ce786862882ba7f0
|