[][src]Module opencv::aruco

ArUco Marker Detection

This module is dedicated to square fiducial markers (also known as Augmented Reality Markers) These markers are useful for easy, fast and robust camera pose estimation.ç

The main functionalities are:

  • Detection of markers in an image
  • Pose estimation from a single marker or from a board/set of markers
  • Detection of ChArUco board for high subpixel accuracy
  • Camera calibration from both, ArUco boards and ChArUco boards.
  • Detection of ChArUco diamond markers The samples directory includes easy examples of how to use the module.

The implementation is based on the ArUco Library by R. Muñoz-Salinas and S. Garrido-Jurado Aruco2014.

Markers can also be detected based on the AprilTag 2 wang2016iros fiducial detection method.

See also

S. Garrido-Jurado, R. Muñoz-Salinas, F. J. Madrid-Cuevas, and M. J. Marín-Jiménez. 2014. "Automatic generation and detection of highly reliable fiducial markers under occlusion". Pattern Recogn. 47, 6 (June 2014), 2280-2292. DOI=10.1016/j.patcog.2014.01.005

http://www.uco.es/investiga/grupos/ava/node/26

This module has been originally developed by Sergio Garrido-Jurado as a project for Google Summer of Code 2015 (GSoC 15).

Structs

Board

Board of markers

CharucoBoard

ChArUco board Specific class for ChArUco boards. A ChArUco board is a planar board 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. This class also allows the easy creation and drawing of ChArUco boards.

DetectorParameters

Parameters for the detectMarker process:

Dictionary

Dictionary/Set of markers. It contains the inner codification

GridBoard

Planar board with grid arrangement of markers More common type of board. All markers are placed in the same plane in a grid arrangement. The board can be drawn using drawPlanarBoard() function (## See also drawPlanarBoard)

Enums

PREDEFINED_DICTIONARY_NAME

Predefined markers dictionaries/sets Each dictionary indicates the number of bits and the number of markers contained

Constants

CORNER_REFINE_APRILTAG
CORNER_REFINE_CONTOUR
CORNER_REFINE_NONE
CORNER_REFINE_SUBPIX
DICT_4X4_50
DICT_4X4_100
DICT_4X4_250
DICT_4X4_1000
DICT_5X5_50
DICT_5X5_100
DICT_5X5_250
DICT_5X5_1000
DICT_6X6_50
DICT_6X6_100
DICT_6X6_250
DICT_6X6_1000
DICT_7X7_50
DICT_7X7_100
DICT_7X7_250
DICT_7X7_1000
DICT_APRILTAG_16h5
DICT_APRILTAG_25h9
DICT_APRILTAG_36h10
DICT_APRILTAG_36h11
DICT_ARUCO_ORIGINAL

Traits

BoardTrait

Board of markers

Functions

_draw_planar_board_impl

Implementation of drawPlanarBoard that accepts a raw Board pointer.

calibrate_camera_aruco

It's the same function as #calibrateCameraAruco but without calibration error estimation.

calibrate_camera_aruco_with_stddev

Calibrate a camera using aruco markers

calibrate_camera_charuco

It's the same function as #calibrateCameraCharuco but without calibration error estimation.

calibrate_camera_charuco_with_stddev

Calibrate a camera using Charuco corners

detect_charuco_diamond

Detect ChArUco Diamond markers

detect_markers

Basic marker detection

draw_axisDeprecated

Draw coordinate system axis from pose estimation

draw_charuco_diamond

Draw a ChArUco Diamond marker

draw_detected_corners_charuco

Draws a set of Charuco corners

draw_detected_diamonds

Draw a set of detected ChArUco Diamond markers

draw_detected_markers

Draw detected markers in image

draw_marker

Draw a canonical marker image

draw_planar_board

Draw a planar board

estimate_pose_board

Pose estimation for a board of markers

estimate_pose_charuco_board

Pose estimation for a ChArUco board given some of their corners

estimate_pose_single_markers

Pose estimation for single markers

generate_custom_dictionary

@see generateCustomDictionary

generate_custom_dictionary_with_base

Generates a new customizable marker dictionary

get_board_object_and_image_points

Given a board configuration and a set of detected markers, returns the corresponding image points and object points to call solvePnP

get_predefined_dictionary

Returns one of the predefined dictionaries defined in PREDEFINED_DICTIONARY_NAME

get_predefined_dictionary_i32

Returns one of the predefined dictionaries referenced by DICT_*.

interpolate_corners_charuco

Interpolate position of ChArUco board corners

refine_detected_markers

Refind not detected markers based on the already detected and the board layout