| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Public Member Functions | List of all members
cv::aruco::CharucoBoard Class Reference
Object Detection » ArUco markers and boards detection for robust camera pose estimation

ChArUco board is a planar chessboard where the markers are placed inside the white squares of a chessboard. More...

`#include <opencv2/objdetect/aruco_board.hpp>`

Collaboration diagram for cv::aruco::CharucoBoard:

## Public Member Functions
| CharucoBoard ()
| CharucoBoard (const Size &size, float squareLength, float markerLength, const Dictionary &dictionary, InputArray ids=noArray())
| CharucoBoard constructor.
bool | checkCharucoCornersCollinear (InputArray charucoIds) const
| check whether the ChArUco markers are collinear
std::vector< Point3f > | getChessboardCorners () const
| get CharucoBoard::chessboardCorners
Size | getChessboardSize () const
bool | getLegacyPattern () const
float | getMarkerLength () const
std::vector< std::vector< int > > | getNearestMarkerCorners () const
| get CharucoBoard::nearestMarkerCorners, for each charuco corner, nearest marker corner id of each marker
std::vector< std::vector< int > > | getNearestMarkerIdx () const
| get CharucoBoard::nearestMarkerIdx, for each charuco corner, nearest marker index in ids array
float | getSquareLength () const
void | setLegacyPattern (bool legacyPattern)
| set legacy chessboard pattern.
Public Member Functions inherited from cv::aruco::Board
| Board ()
| Board (InputArrayOfArrays objPoints, const Dictionary &dictionary, InputArray ids)
| Common Board constructor.
void | generateImage (Size outSize, OutputArray img, int marginSize=0, int borderBits=1) const
| Draw a planar board.
const Dictionary & | getDictionary () const
| return the Dictionary of markers employed for this board
const std::vector< int > & | getIds () const
| vector of the identifiers of the markers in the board (should be the same size as objPoints)
const std::vector< std::vector< Point3f > > & | getObjPoints () const
| return array of object points of all the marker corners in the board.
const Point3f & | getRightBottomCorner () const
| get coordinate of the bottom right corner of the board, is set when calling the function create()
void | matchImagePoints (InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints) const
| Given a board configuration and a set of detected markers, returns the corresponding image points and object points, can be used in solvePnP()

## Additional Inherited Members
Protected Member Functions inherited from cv::aruco::Board
| Board (const Ptr< Impl > &impl)
Protected Attributes inherited from cv::aruco::Board
Ptr< Impl > | impl

## Detailed Description

ChArUco board is a planar chessboard where the markers are placed inside the white squares of a chessboard.

The benefits of ChArUco boards is that they provide both, ArUco markers versatility and chessboard corner precision, which is important for calibration and pose estimation. The board image can be drawn using generateImage() method.

## Constructor & Destructor Documentation

## ◆ CharucoBoard() [1/2]

cv::aruco::CharucoBoard::CharucoBoard | ( | const Size & | size,
|  | float | squareLength,
|  | float | markerLength,
|  | const Dictionary & | dictionary,
|  | InputArray | ids = noArray() )

Python:
| cv.aruco.CharucoBoard( | size, squareLength, markerLength, dictionary[, ids] | ) -> | <aruco_CharucoBoard object>

CharucoBoard constructor.

Parameters

  size | number of chessboard squares in x and y directions
  squareLength | squareLength chessboard square side length (normally in meters)
  markerLength | marker side length (same unit than squareLength)
  dictionary | dictionary of markers indicating the type of markers
  ids | array of id used markers The first markers in the dictionary are used to fill the white chessboard squares.

Here is the call graph for this function:

## ◆ CharucoBoard() [2/2]

cv::aruco::CharucoBoard::CharucoBoard | ( |  | ) |

Python:
| cv.aruco.CharucoBoard( | size, squareLength, markerLength, dictionary[, ids] | ) -> | <aruco_CharucoBoard object>

## Member Function Documentation

## ◆ checkCharucoCornersCollinear()

bool cv::aruco::CharucoBoard::checkCharucoCornersCollinear | ( | InputArray | charucoIds | ) | const

Python:
| cv.aruco.CharucoBoard.checkCharucoCornersCollinear( | charucoIds | ) -> | retval

check whether the ChArUco markers are collinear

Parameters

  charucoIds | list of identifiers for each corner in charucoCorners per frame.

Returns
  bool value, 1 (true) if detected corners form a line, 0 (false) if they do not. solvePnP, calibration functions will fail if the corners are collinear (true).

The number of ids in charucoIDs should be <= the number of chessboard corners in the board. This functions checks whether the charuco corners are on a straight line (returns true, if so), or not (false). Axis parallel, as well as diagonal and other straight lines detected. Degenerate cases: for number of charucoIDs <= 2,the function returns true.

## ◆ getChessboardCorners()

std::vector< Point3f > cv::aruco::CharucoBoard::getChessboardCorners | ( |  | ) | const

Python:
| cv.aruco.CharucoBoard.getChessboardCorners( |  | ) -> | retval

get CharucoBoard::chessboardCorners

## ◆ getChessboardSize()

Size cv::aruco::CharucoBoard::getChessboardSize | ( |  | ) | const

Python:
| cv.aruco.CharucoBoard.getChessboardSize( |  | ) -> | retval

## ◆ getLegacyPattern()

bool cv::aruco::CharucoBoard::getLegacyPattern | ( |  | ) | const

Python:
| cv.aruco.CharucoBoard.getLegacyPattern( |  | ) -> | retval

## ◆ getMarkerLength()

float cv::aruco::CharucoBoard::getMarkerLength | ( |  | ) | const

Python:
| cv.aruco.CharucoBoard.getMarkerLength( |  | ) -> | retval

## ◆ getNearestMarkerCorners()

std::vector< std::vector< int > > cv::aruco::CharucoBoard::getNearestMarkerCorners | ( |  | ) | const

get CharucoBoard::nearestMarkerCorners, for each charuco corner, nearest marker corner id of each marker

## ◆ getNearestMarkerIdx()

std::vector< std::vector< int > > cv::aruco::CharucoBoard::getNearestMarkerIdx | ( |  | ) | const

get CharucoBoard::nearestMarkerIdx, for each charuco corner, nearest marker index in ids array

## ◆ getSquareLength()

float cv::aruco::CharucoBoard::getSquareLength | ( |  | ) | const

Python:
| cv.aruco.CharucoBoard.getSquareLength( |  | ) -> | retval

## ◆ setLegacyPattern()

void cv::aruco::CharucoBoard::setLegacyPattern | ( | bool | legacyPattern | ) |

Python:
| cv.aruco.CharucoBoard.setLegacyPattern( | legacyPattern | ) -> | None

set legacy chessboard pattern.

Legacy setting creates chessboard patterns starting with a white box in the upper left corner if there is an even row count of chessboard boxes, otherwise it starts with a black box. This setting ensures compatibility to patterns created with OpenCV versions prior OpenCV 4.6.0. See https://github.com/opencv/opencv/issues/23152.

Default value: false.

The documentation for this class was generated from the following file:

- opencv2/objdetect/aruco_board.hpp