public class CalibrateStereoPlanar
extends java.lang.Object
Given a sequence of observations from a stereo camera compute the intrinsic calibration of each camera and the extrinsic calibration between the two cameras. A Planar calibration grid is used, which must be completely visible in all images.
Calibration is performed by first independently determining the intrinsic parameters of each camera as well as their extrinsic parameters relative to the calibration grid. Then the extrinsic parameters between the two cameras is found by creating two point clouds composed of the calibration points in each camera's view. Then the rigid body motion is found which transforms one point cloud into the other.
See comments in CalibrateMonoPlanar about when the y-axis should be inverted.
| Constructor and Description |
|---|
CalibrateStereoPlanar(PlanarCalibrationDetector detector,
boolean flipY)
Configures stereo calibration
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
addPair(boofcv.struct.image.ImageFloat32 left,
boofcv.struct.image.ImageFloat32 right)
Adds a pair of images that observed the same target.
|
void |
configure(PlanarCalibrationTarget target,
boolean assumeZeroSkew,
int numRadialParam)
Specify calibration assumptions.
|
CalibrateMonoPlanar |
getCalibLeft() |
CalibrateMonoPlanar |
getCalibRight() |
boolean |
isConvertToRightHanded() |
void |
printStatistics() |
boofcv.struct.calib.StereoParameters |
process()
Compute stereo calibration parameters
|
void |
reset()
Puts the class into its initial state.
|
public CalibrateStereoPlanar(PlanarCalibrationDetector detector, boolean flipY)
detector - Target detection algorithm.flipY - If true the y-axis will be inverted to ensure the assumed coordinate system is being used.
Most of the time this will be false.public void reset()
public void configure(PlanarCalibrationTarget target, boolean assumeZeroSkew, int numRadialParam)
target - Describes the calibration target.assumeZeroSkew - If true zero skew is assumed.numRadialParam - Number of radial parameterspublic boolean addPair(boofcv.struct.image.ImageFloat32 left,
boofcv.struct.image.ImageFloat32 right)
left - Image of left target.right - Image of right target.public boofcv.struct.calib.StereoParameters process()
public CalibrateMonoPlanar getCalibLeft()
public CalibrateMonoPlanar getCalibRight()
public boolean isConvertToRightHanded()
public void printStatistics()