Documentation of 'boofcv.abst.geo.calibration.CalibrateMonoPlanar' Java class
CalibrateMonoPlanar
boofcv.abst.geo.calibration

Class CalibrateMonoPlanar



  • public class CalibrateMonoPlanar
    extends java.lang.Object

    Performs the full processing loop for calibrating a mono camera from a planar grid. A directory is specified that the images are read in from. Calibration points are detected inside the image and feed into the Zhang99 algorithm for parameter estimation.

    Internally it supports status updates for a GUI and skips over bad images. Invoke functions in the following order:

    1. configure(boolean, int, boolean)
    2. reset()
    3. addImage(boofcv.struct.image.GrayF32)
    4. process()
    5. getIntrinsic()

    Most 3D operations in BoofCV assume that the image coordinate system is right handed and the +Z axis is pointing out of the camera. In standard image coordinate the origin (0,0) is at the top left corner with +x going to the right and +y going down, then if it is right handed +z will be out of the image. However some times this pseudo standard is not followed and the y-axis needs to be inverted by setting isInverted to true.

    • Field Detail

      • verbose

        public boolean verbose
    • Constructor Detail

      • CalibrateMonoPlanar

        public CalibrateMonoPlanar(CalibrationDetector detector)
        High level configuration
        Parameters:
        detector - Target detection algorithm.
    • Method Detail

      • configure

        public void configure(boolean assumeZeroSkew,
                              int numRadialParam,
                              boolean includeTangential)
        Specify calibration assumptions.
        Parameters:
        assumeZeroSkew - If true then zero skew is assumed. Typically this will be true.
        numRadialParam - Number of radial parameters. Typically set to 2.
        includeTangential - If true it will estimate tangential distortion parameters. Try false then true
      • reset

        public void reset()
        Resets internal data structures. Must call before adding images
      • addImage

        public boolean addImage(GrayF32 image)
        Adds a new view of the calibration target and processes it. If processing fails then false is returned.
        Parameters:
        image - Image of a calibration target
        Returns:
        true if a target was detected in the image or not
      • removeLatestImage

        public void removeLatestImage()
        Removes the most recently added image
      • process

        public IntrinsicParameters process()
        After calibration points have been found this invokes the Zhang99 algorithm to estimate calibration parameters. Error statistics are also computed.
      • printStatistics

        public void printStatistics()
      • computeErrors

        public static java.util.List<ImageResults> computeErrors(java.util.List<CalibrationObservation> observation,
                                                                 Zhang99ParamAll param,
                                                                 java.util.List<Point2D_F64> grid)
        After the parameters have been estimated this computes the error for each calibration point in each image and summary error statistics.
        Parameters:
        observation - Observed control point location
        param - Found calibration parameters
        Returns:
        List of error statistics
      • printErrors

        public static void printErrors(java.util.List<ImageResults> results)
        Prints out error information to standard out
      • getErrors

        public java.util.List<ImageResults> getErrors()

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.