OpenCV  4.7.0-dev
Open Source Computer Vision
Public Member Functions | Protected Attributes | List of all members

#include <opencv2/objdetect/charuco_detector.hpp>

Inheritance diagram for cv::aruco::CharucoDetector:

Public Member Functions

 CharucoDetector (const CharucoBoard &board, const CharucoParameters &charucoParams=CharucoParameters(), const DetectorParameters &detectorParams=DetectorParameters(), const RefineParameters &refineParams=RefineParameters())
 Basic CharucoDetector constructor. More...
void detectBoard (InputArray image, OutputArray charucoCorners, OutputArray charucoIds, InputOutputArrayOfArrays markerCorners=noArray(), InputOutputArray markerIds=noArray()) const
 detect aruco markers and interpolate position of ChArUco board corners More...
void detectDiamonds (InputArray image, OutputArrayOfArrays diamondCorners, OutputArray diamondIds, InputOutputArrayOfArrays markerCorners=noArray(), InputOutputArrayOfArrays markerIds=noArray()) const
 Detect ChArUco Diamond markers. More...
const CharucoBoardgetBoard () const
const CharucoParametersgetCharucoParameters () const
const DetectorParametersgetDetectorParameters () const
const RefineParametersgetRefineParameters () const
void setBoard (const CharucoBoard &board)
void setCharucoParameters (CharucoParameters &charucoParameters)
void setDetectorParameters (const DetectorParameters &detectorParameters)
void setRefineParameters (const RefineParameters &refineParameters)
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
virtual ~Algorithm ()
virtual void clear ()
 Clears the algorithm state. More...
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String getDefaultName () const
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage. More...
virtual void save (const String &filename) const
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage. More...
void write (FileStorage &fs, const String &name) const
void write (const Ptr< FileStorage > &fs, const String &name=String()) const

Protected Attributes

Ptr< CharucoDetectorImpl > charucoDetectorImpl

Additional Inherited Members

- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
 Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
 Reads algorithm from the file node. More...
- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const

Constructor & Destructor Documentation

◆ CharucoDetector()

cv::aruco::CharucoDetector::CharucoDetector ( const CharucoBoard board,
const CharucoParameters charucoParams = CharucoParameters(),
const DetectorParameters detectorParams = DetectorParameters(),
const RefineParameters refineParams = RefineParameters() 

Basic CharucoDetector constructor.

boardChAruco board
charucoParamscharuco detection parameters
detectorParamsmarker detection parameters
refineParamsmarker refine detection parameters

Member Function Documentation

◆ detectBoard()

void cv::aruco::CharucoDetector::detectBoard ( InputArray  image,
OutputArray  charucoCorners,
OutputArray  charucoIds,
InputOutputArrayOfArrays  markerCorners = noArray(),
InputOutputArray  markerIds = noArray() 
) const
cv.aruco.CharucoDetector.detectBoard(image[, charucoCorners[, charucoIds[, markerCorners[, markerIds]]]]) -> charucoCorners, charucoIds, markerCorners, markerIds

detect aruco markers and interpolate position of ChArUco board corners

imageinput image necesary for corner refinement. Note that markers are not detected and should be sent in corners and ids parameters.
charucoCornersinterpolated chessboard corners.
charucoIdsinterpolated chessboard corners identifiers.
markerCornersvector of already detected markers corners. For each marker, its four corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
markerIdslist of identifiers for each marker in corners. If markerCorners and markerCorners are empty, the function detect aruco markers and ids.

This function receives the detected markers and returns the 2D position of the chessboard corners from a ChArUco board using the detected Aruco markers.

If markerCorners and markerCorners are empty, the detectMarkers() will run and detect aruco markers and ids.

If camera parameters are provided, the process is based in an approximated pose estimation, else it is based on local homography. Only visible corners are returned. For each corner, its corresponding identifier is also returned in charucoIds.

See also

◆ detectDiamonds()

void cv::aruco::CharucoDetector::detectDiamonds ( InputArray  image,
OutputArrayOfArrays  diamondCorners,
OutputArray  diamondIds,
InputOutputArrayOfArrays  markerCorners = noArray(),
InputOutputArrayOfArrays  markerIds = noArray() 
) const
cv.aruco.CharucoDetector.detectDiamonds(image[, diamondCorners[, diamondIds[, markerCorners[, markerIds]]]]) -> diamondCorners, diamondIds, markerCorners, markerIds

Detect ChArUco Diamond markers.

imageinput image necessary for corner subpixel.
diamondCornersoutput list of detected diamond corners (4 corners per diamond). The order is the same than in marker corners: top left, top right, bottom right and bottom left. Similar format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ).
diamondIdsids of the diamonds in diamondCorners. The id of each diamond is in fact of type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the diamond.
markerCornerslist of detected marker corners from detectMarkers function. If markerCorners and markerCorners are empty, the function detect aruco markers and ids.
markerIdslist of marker ids in markerCorners. If markerCorners and markerCorners are empty, the function detect aruco markers and ids.

This function detects Diamond markers from the previous detected ArUco markers. The diamonds are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters are provided, the diamond search is based on reprojection. If not, diamond search is based on homography. Homography is faster than reprojection, but less accurate.

◆ getBoard()

const CharucoBoard& cv::aruco::CharucoDetector::getBoard ( ) const
cv.aruco.CharucoDetector.getBoard() -> retval

◆ getCharucoParameters()

const CharucoParameters& cv::aruco::CharucoDetector::getCharucoParameters ( ) const
cv.aruco.CharucoDetector.getCharucoParameters() -> retval

◆ getDetectorParameters()

const DetectorParameters& cv::aruco::CharucoDetector::getDetectorParameters ( ) const
cv.aruco.CharucoDetector.getDetectorParameters() -> retval

◆ getRefineParameters()

const RefineParameters& cv::aruco::CharucoDetector::getRefineParameters ( ) const
cv.aruco.CharucoDetector.getRefineParameters() -> retval

◆ setBoard()

void cv::aruco::CharucoDetector::setBoard ( const CharucoBoard board)
cv.aruco.CharucoDetector.setBoard(board) -> None

◆ setCharucoParameters()

void cv::aruco::CharucoDetector::setCharucoParameters ( CharucoParameters charucoParameters)
cv.aruco.CharucoDetector.setCharucoParameters(charucoParameters) -> None

◆ setDetectorParameters()

void cv::aruco::CharucoDetector::setDetectorParameters ( const DetectorParameters detectorParameters)
cv.aruco.CharucoDetector.setDetectorParameters(detectorParameters) -> None

◆ setRefineParameters()

void cv::aruco::CharucoDetector::setRefineParameters ( const RefineParameters refineParameters)
cv.aruco.CharucoDetector.setRefineParameters(refineParameters) -> None

Member Data Documentation

◆ charucoDetectorImpl

Ptr<CharucoDetectorImpl> cv::aruco::CharucoDetector::charucoDetectorImpl

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