Class MicroQrPose3DUtils

java.lang.Object
boofcv.alg.fiducial.microqr.MicroQrPose3DUtils

public class MicroQrPose3DUtils
extends Object
Utilities when estimating the 3D pose of a Micro QR Code. Each landmark (e.g. corner on a locator pattern) is assigned an ID. Functions are provided for accessing coordinates (of each landmark by ID. 3D coordinates in marker frame have values from -1 to 1 to make it more numerically favorable for linear estimators. This scale offset is easily fixed with a multiplication after the pose has been found.
  • Field Details

  • Constructor Details

    • MicroQrPose3DUtils

      public MicroQrPose3DUtils()
  • Method Details

    • getLandmarkByIndex

      public List<PointIndex2D_F64> getLandmarkByIndex​(MicroQrCode qr)
      Converts the corner observations into PointIndex2D_F64 where observations are in pixels
    • getLandmark2D3D

      public List<Point2D3D> getLandmark2D3D​(MicroQrCode qr)
      Returns a list of Point2D3D. The 2D observation is the corner in normalized image coordinates. The 3D location is the location of the corner in the marker's reference frame
      Parameters:
      qr - The qr code
      Returns:
      List of corner points in marker frame and normalized image coordinates
    • getLandmark3D

      public List<Point3D_F64> getLandmark3D​(int version)
      Location of each corner in the QR Code's reference frame in 3D
      Parameters:
      version - QR Code's version
      Returns:
      List. Recycled on each call
    • setLensDistortion

      public void setLensDistortion​(@Nullable @Nullable Point2Transform2_F64 pixelToNorm, @Nullable @Nullable Point2Transform2_F64 undistToDist)
      Specifies transform from pixel to normalize image coordinates
    • getPixelToNorm

      public Point2Transform2_F64 getPixelToNorm()