Class Board

  • Direct Known Subclasses:
    CharucoBoard, GridBoard

    public class Board
    extends java.lang.Object
    Board of ArUco markers A board is a set of markers in the 3D space with a common coordinate system. The common form of a board of marker is a planar (2D) board, however any 3D layout can be used. A Board object is composed by: - The object points of the marker corners, i.e. their coordinates respect to the board system. - The dictionary which indicates the type of markers of the board - The identifier of all the markers in the board.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected long nativeObj  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Board​(long addr)  
        Board​(java.util.List<Mat> objPoints, Dictionary dictionary, Mat ids)
      Common Board constructor
    • Field Detail

      • nativeObj

        protected final long nativeObj
    • Constructor Detail

      • Board

        protected Board​(long addr)
      • Board

        public Board​(java.util.List<Mat> objPoints,
                     Dictionary dictionary,
                     Mat ids)
        Common Board constructor
        Parameters:
        objPoints - array of object points of all the marker corners in the board
        dictionary - the dictionary of markers employed for this board
        ids - vector of the identifiers of the markers in the board
    • Method Detail

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static Board __fromPtr__​(long addr)
      • getDictionary

        public Dictionary getDictionary()
        return the Dictionary of markers employed for this board
        Returns:
        automatically generated
      • getObjPoints

        public java.util.List<MatOfPoint3f> getObjPoints()
        return array of object points of all the marker corners in the board. Each marker include its 4 corners in this order: - objPoints[i][0] - left-top point of i-th marker - objPoints[i][1] - right-top point of i-th marker - objPoints[i][2] - right-bottom point of i-th marker - objPoints[i][3] - left-bottom point of i-th marker Markers are placed in a certain order - row by row, left to right in every row. For M markers, the size is Mx4.
        Returns:
        automatically generated
      • getIds

        public MatOfInt getIds()
        vector of the identifiers of the markers in the board (should be the same size as objPoints)
        Returns:
        vector of the identifiers of the markers
      • getRightBottomCorner

        public Point3 getRightBottomCorner()
        get coordinate of the bottom right corner of the board, is set when calling the function create()
        Returns:
        automatically generated
      • matchImagePoints

        public void matchImagePoints​(java.util.List<Mat> detectedCorners,
                                     Mat detectedIds,
                                     Mat objPoints,
                                     Mat imgPoints)
        Given a board configuration and a set of detected markers, returns the corresponding image points and object points, can be used in solvePnP()
        Parameters:
        detectedCorners - List of detected marker corners of the board. For cv::Board and cv::GridBoard the method expects std::vector<std::vector<Point2f>> or std::vector<Mat> with Aruco marker corners. For cv::CharucoBoard the method expects std::vector<Point2f> or Mat with ChAruco corners (chess board corners matched with Aruco markers).
        detectedIds - List of identifiers for each marker or charuco corner. For any Board class the method expects std::vector<int> or Mat.
        objPoints - Vector of marker points in the board coordinate space. For any Board class the method expects std::vector<cv::Point3f> objectPoints or cv::Mat
        imgPoints - Vector of marker points in the image coordinate space. For any Board class the method expects std::vector<cv::Point2f> objectPoints or cv::Mat SEE: solvePnP
      • generateImage

        public void generateImage​(Size outSize,
                                  Mat img,
                                  int marginSize,
                                  int borderBits)
        Draw a planar board
        Parameters:
        outSize - size of the output image in pixels.
        img - output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions.
        marginSize - minimum margins (in pixels) of the board in the output image
        borderBits - width of the marker borders. This function return the image of the board, ready to be printed.
      • generateImage

        public void generateImage​(Size outSize,
                                  Mat img,
                                  int marginSize)
        Draw a planar board
        Parameters:
        outSize - size of the output image in pixels.
        img - output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions.
        marginSize - minimum margins (in pixels) of the board in the output image This function return the image of the board, ready to be printed.
      • generateImage

        public void generateImage​(Size outSize,
                                  Mat img)
        Draw a planar board
        Parameters:
        outSize - size of the output image in pixels.
        img - output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. This function return the image of the board, ready to be printed.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable