39#ifndef __OPENCV_ARUCO_HPP__
40#define __OPENCV_ARUCO_HPP__
42#include <opencv2/core.hpp>
44#include "opencv2/aruco/dictionary.hpp"
156 CV_PROP_RW
int adaptiveThreshWinSizeMin;
157 CV_PROP_RW
int adaptiveThreshWinSizeMax;
158 CV_PROP_RW
int adaptiveThreshWinSizeStep;
159 CV_PROP_RW
double adaptiveThreshConstant;
160 CV_PROP_RW
double minMarkerPerimeterRate;
161 CV_PROP_RW
double maxMarkerPerimeterRate;
162 CV_PROP_RW
double polygonalApproxAccuracyRate;
163 CV_PROP_RW
double minCornerDistanceRate;
164 CV_PROP_RW
int minDistanceToBorder;
165 CV_PROP_RW
double minMarkerDistanceRate;
166 CV_PROP_RW
int cornerRefinementMethod;
167 CV_PROP_RW
int cornerRefinementWinSize;
168 CV_PROP_RW
int cornerRefinementMaxIterations;
169 CV_PROP_RW
double cornerRefinementMinAccuracy;
170 CV_PROP_RW
int markerBorderBits;
171 CV_PROP_RW
int perspectiveRemovePixelPerCell;
172 CV_PROP_RW
double perspectiveRemoveIgnoredMarginPerCell;
173 CV_PROP_RW
double maxErroneousBitsInBorderRate;
174 CV_PROP_RW
double minOtsuStdDev;
175 CV_PROP_RW
double errorCorrectionRate;
178 CV_PROP_RW
float aprilTagQuadDecimate;
179 CV_PROP_RW
float aprilTagQuadSigma;
182 CV_PROP_RW
int aprilTagMinClusterPixels;
183 CV_PROP_RW
int aprilTagMaxNmaxima;
184 CV_PROP_RW
float aprilTagCriticalRad;
185 CV_PROP_RW
float aprilTagMaxLineFitMse;
186 CV_PROP_RW
int aprilTagMinWhiteBlackDiff;
187 CV_PROP_RW
int aprilTagDeglitch;
190 CV_PROP_RW
bool detectInvertedMarker;
223 OutputArrayOfArrays rejectedImgPoints = noArray(), InputArray cameraMatrix= noArray(), InputArray distCoeff= noArray());
257 InputArray cameraMatrix, InputArray distCoeffs,
294 CV_WRAP
void setIds(InputArray ids);
298 CV_PROP std::vector< std::vector< Point3f > > objPoints;
305 CV_PROP_RW std::vector< int > ids;
329 CV_WRAP
void draw(
Size outSize,
OutputArray img,
int marginSize = 0,
int borderBits = 1);
346 CV_WRAP
static Ptr<GridBoard> create(
int markersX,
int markersY,
float markerLength,
347 float markerSeparation,
const Ptr<Dictionary> &dictionary,
int firstMarker = 0);
352 CV_WRAP
Size getGridSize()
const {
return Size(_markersX, _markersY); }
357 CV_WRAP
float getMarkerLength()
const {
return _markerLength; }
362 CV_WRAP
float getMarkerSeparation()
const {
return _markerSeparation; }
367 int _markersX, _markersY;
373 float _markerSeparation;
447 InputArray cameraMatrix = noArray(), InputArray distCoeffs = noArray(),
448 float minRepDistance = 10.f,
float errorCorrectionRate = 3.f,
bool checkAllOrders =
true,
471 InputArray ids = noArray(),
495 InputArray rvec, InputArray tvec,
float length);
532 int marginSize = 0,
int borderBits = 1);
540 int marginSize = 0,
int borderBits = 1);
581 InputArrayOfArrays corners, InputArray ids, InputArray counter,
const Ptr<Board> &board,
592 InputArrayOfArrays corners, InputArray ids, InputArray counter,
const Ptr<Board> &board,
This type is very similar to InputArray except that it is used for input/output and output function p...
Definition: mat.hpp:295
Template class for specifying the size of an image or rectangle.
Definition: core/types.hpp:316
The class defining termination criteria for iterative algorithms.
Definition: core/types.hpp:853
@ EPS
the desired accuracy or change in parameters at which the iterative algorithm stops
Definition: core/types.hpp:862
@ COUNT
the maximum number of iterations or elements to compute
Definition: core/types.hpp:860
Board of markers
Definition: aruco.hpp:272
Planar board with grid arrangement of markers More common type of board. All markers are placed in th...
Definition: aruco.hpp:315
CV_EXPORTS_W int estimatePoseBoard(InputArrayOfArrays corners, InputArray ids, const Ptr< Board > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)
Pose estimation for a board of markers
CV_EXPORTS_W void drawAxis(InputOutputArray image, InputArray cameraMatrix, InputArray distCoeffs, InputArray rvec, InputArray tvec, float length)
Draw coordinate system axis from pose estimation
CV_EXPORTS_W void getBoardObjectAndImagePoints(const Ptr< Board > &board, InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints)
Given a board configuration and a set of detected markers, returns the corresponding image points and...
CV_EXPORTS_W void estimatePoseSingleMarkers(InputArrayOfArrays corners, float markerLength, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvecs, OutputArray tvecs, OutputArray _objPoints=noArray())
Pose estimation for single markers
CV_EXPORTS_W void detectMarkers(InputArray image, const Ptr< Dictionary > &dictionary, OutputArrayOfArrays corners, OutputArray ids, const Ptr< DetectorParameters > ¶meters=DetectorParameters::create(), OutputArrayOfArrays rejectedImgPoints=noArray(), InputArray cameraMatrix=noArray(), InputArray distCoeff=noArray())
Basic marker detection
CV_EXPORTS_W void drawPlanarBoard(const Ptr< Board > &board, Size outSize, OutputArray img, int marginSize=0, int borderBits=1)
Draw a planar board
CV_EXPORTS_W void refineDetectedMarkers(InputArray image, const Ptr< Board > &board, InputOutputArrayOfArrays detectedCorners, InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), float minRepDistance=10.f, float errorCorrectionRate=3.f, bool checkAllOrders=true, OutputArray recoveredIdxs=noArray(), const Ptr< DetectorParameters > ¶meters=DetectorParameters::create())
Refind not detected markers based on the already detected and the board layout
CV_EXPORTS_W void drawDetectedMarkers(InputOutputArray image, InputArrayOfArrays corners, InputArray ids=noArray(), Scalar borderColor=Scalar(0, 255, 0))
Draw detected markers in image
void _drawPlanarBoardImpl(Board *board, Size outSize, OutputArray img, int marginSize=0, int borderBits=1)
Implementation of drawPlanarBoard that accepts a raw Board pointer.
CV_EXPORTS_W double calibrateCameraAruco(InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr< Board > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
It's the same function as #calibrateCameraAruco but without calibration error estimation.
CornerRefineMethod
Definition: aruco.hpp:81
@ CORNER_REFINE_APRILTAG
Tag and corners detection based on the AprilTag 2 approach
Definition: aruco.hpp:85
@ CORNER_REFINE_SUBPIX
ArUco approach and refine the corners locations using corner subpixel accuracy
Definition: aruco.hpp:83
@ CORNER_REFINE_CONTOUR
ArUco approach and refine the corners locations using the contour-points line fitting
Definition: aruco.hpp:84
@ CORNER_REFINE_NONE
Tag and corners detection based on the ArUco approach
Definition: aruco.hpp:82
CV_EXPORTS_AS(calibrateCameraExtended) double calibrateCamera(InputArrayOfArrays objectPoints
Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.
CV_EXPORTS_W void drawMarker(InputOutputArray img, Point position, const Scalar &color, int markerType=MARKER_CROSS, int markerSize=20, int thickness=1, int line_type=8)
Draws a marker on a predefined position in an image.
"black box" representation of the file storage associated with a file on disk.
Definition: aruco.hpp:75
Definition: cvstd_wrapper.hpp:74
Parameters for the detectMarker process:
Definition: aruco.hpp:150