Skip to content

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_images

TargetDetections

Returned by find_corners(), and available via detections() after calibrate(). Frame k of the input appears here iff detection succeeded on it.

FieldTypeDescription
successful_indiceslist[int]Indices into the input image list, one per successful frame.
image_pointslist[ndarray]Per successful frame, detected image points.
object_pointslist[ndarray]Per successful frame, board-frame Get Object Points.
point_idslist[ndarray]Per successful frame, ChArUco corner ids. Empty for targets without per-corner ids (chessboard, ArUco grid).
annotated_imageslist[ndarray]Per successful frame, the input image with detections drawn.