Package boofcv.abst.geo.calibration
Class CalibrateMultiPlanar
java.lang.Object
boofcv.abst.geo.calibration.CalibrateMultiPlanar
Multi camera calibration using multiple planar targets. It's assumed that all cameras are rigidly attach and that the calibration targets are static. Camera[0] is always the sensor reference frame. The world reference frame is defined as calibration target[0].
Usage:- Specify camera model via
#getCalibratorMono
and configure* functions - Call
initialize(int, int)
- Specify shape of all cameras
setCameraProperties(int, int, int)
- Specify target layouts using
setTargetLayout(int, java.util.List<georegression.struct.point.Point2D_F64>)
- Call
process()
perform calibration. Check results to see if it succeeded - Get found calibration with
#getResults()
- Calibrate each camera independently using monocular approach
- Estimate extrinsic relationship between cameras using common observed targets
- Estimate extrinsic relationship between sensor and world for each frame
- Run bundle adjustment to improve results
Internally it assumes that the targets are stationary and the camera system is moving. It will work just fine if the opposite is true as these are mathematically identical.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Prior information provided about the camera by the userstatic class
Calibration quality statisticsstatic class
List of all observation from a camera in a frame.static class
Workspace for information related to a single frame.static class
Specifies which target was observed and what the inferred transform was.. -
Field Summary
Modifier and TypeFieldDescriptionprotected double[]
Reprojection error thresholds for histogram in performance summary -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addObservation
(SynchronizedCalObs observations) Adds an observation.computeQualityText
(boolean showImageStats) Summarizes calibration quality and residual errors in a human-readable text stringvoid
initialize
(int numCameras, int numTargets) Must call this function first.boolean
process()
Processes the inputs and estimates the camera system's intrinsic and extrinsic calibration.void
setCameraProperties
(int which, int width, int height) Specifies the shape o images from a specific cameravoid
setTargetLayout
(int which, List<Point2D_F64> layout) Specifies location of calibration points for a target.void
setTargetLayouts
(List<List<Point2D_F64>> layouts)
-
Field Details
-
summaryThresholds
protected double[] summaryThresholdsReprojection error thresholds for histogram in performance summary
-
-
Constructor Details
-
CalibrateMultiPlanar
public CalibrateMultiPlanar()
-
-
Method Details
-
initialize
public void initialize(int numCameras, int numTargets) Must call this function first. Specifies the number of cameras and calibration targets -
setCameraProperties
public void setCameraProperties(int which, int width, int height) Specifies the shape o images from a specific camera -
setTargetLayout
Specifies location of calibration points for a target. -
setTargetLayouts
-
addObservation
Adds an observation. Order does not matter. All cameras are assumed to have synchronized shutters and observed the world at the exact same time.- Parameters:
observations
- Observed calibration targets in a single fram.
-
process
public boolean process()Processes the inputs and estimates the camera system's intrinsic and extrinsic calibration. If true is returned, then#getResults()
will return the found calibration.- Returns:
- true if successful or false if it failed
-
computeQualityText
Summarizes calibration quality and residual errors in a human-readable text string- Parameters:
showImageStats
- If true it will print stats for individual images.
-