Find Corners
SUMMARY
find_corners() runs IntrinsicCalibrator's detection stage with no calibration solve, used standalone for detection-only workflows (e.g. multi-camera with known intrinsics).
SUPPORTED TARGETS
Works with any target, ChessboardTarget, CharucoTarget, or ArucoTarget. point_ids is only populated for CharucoTarget, the other targets have no per-corner ids.
UNITS
Input images are BGR ndarrays. image_points are in pixels; object_points are board-frame 3D coordinates in meters.
The Skill
python
detections = calibrator.find_corners(images)The Code
python
from telekinesis.axon import IntrinsicCalibrator, IntrinsicOptions
from telekinesis.axon.targets import CharucoTarget
target = CharucoTarget(squares_x=6, squares_y=9, square_length=0.012, marker_length=0.009)
calibrator = IntrinsicCalibrator(target, IntrinsicOptions())
detections = calibrator.find_corners(images)
detections.successful_indices # list[int]
detections.image_points
detections.object_points
detections.point_ids
detections.annotated_imagesTargetDetections
Returned by find_corners(), and available via detections() after calibrate(). Frame k of the input appears here iff detection succeeded on it.
| Field | Type | Description |
|---|---|---|
successful_indices | list[int] | Indices into the input image list, one per successful frame. |
image_points | list[ndarray] | Per successful frame, detected image points. |
object_points | list[ndarray] | Per successful frame, board-frame Get Object Points. |
point_ids | list[ndarray] | Per successful frame, ChArUco corner ids. Empty for targets without per-corner ids (chessboard, ArUco grid). |
annotated_images | list[ndarray] | Per successful frame, the input image with detections drawn. |