Static Public Member Functions | Static Private Member Functions | List of all members
aruco::FiducidalMarkers Class Reference

#include <arucofidmarkers.h>

Static Public Member Functions

static cv::Mat createBoardImage (cv::Size gridSize, int MarkerSize, int MarkerDistance, BoardConfiguration &TInfo, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createBoardImage (cv::Size gridSize, int MarkerSize, int MarkerDistance, BoardConfiguration &TInfo, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createBoardImage_ChessBoard (cv::Size gridSize, int MarkerSize, BoardConfiguration &TInfo, bool setDataCentered=true, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createBoardImage_ChessBoard (cv::Size gridSize, int MarkerSize, BoardConfiguration &TInfo, bool setDataCentered=true, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createBoardImage_Frame (cv::Size gridSize, int MarkerSize, int MarkerDistance, BoardConfiguration &TInfo, bool setDataCentered=true, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createBoardImage_Frame (cv::Size gridSize, int MarkerSize, int MarkerDistance, BoardConfiguration &TInfo, bool setDataCentered=true, vector< int > *excludedIds=NULL) throw (cv::Exception)
 
static cv::Mat createMarkerImage (int id, int size) throw (cv::Exception)
 Creates an ar marker with the id specified using a modified version of the hamming code. There are two type of markers: a) These of 10 bits b) these of 3 bits. The latter are employed for applications that need few marker but they must be small. The two type of markers are distinguished by their ids. While the first type of markers have ids in the interval [0-1023], the second type ids in the interval [2000-2006]. More...
 
static cv::Mat createMarkerImage (int id, int size) throw (cv::Exception)
 Creates an ar marker with the id specified using a modified version of the hamming code. There are two type of markers: a) These of 10 bits b) these of 3 bits. The latter are employed for applications that need few marker but they must be small. The two type of markers are distinguished by their ids. While the first type of markers have ids in the interval [0-1023], the second type ids in the interval [2000-2006]. More...
 
static int detect (const cv::Mat &in, int &nRotations)
 
static int detect (const cv::Mat &in, int &nRotations)
 
static cv::Mat getMarkerMat (int id) throw (cv::Exception)
 
static cv::Mat getMarkerMat (int id) throw (cv::Exception)
 

Static Private Member Functions

static int analyzeMarkerImage (cv::Mat &grey, int &nRotations)
 
static int analyzeMarkerImage (cv::Mat &grey, int &nRotations)
 
static vector< int > getListOfValidMarkersIds_random (int nMarkers, vector< int > *excluded) throw (cv::Exception)
 
static vector< int > getListOfValidMarkersIds_random (int nMarkers, vector< int > *excluded) throw (cv::Exception)
 
static int hammDistMarker (cv::Mat bits)
 
static int hammDistMarker (cv::Mat bits)
 
static cv::Mat rotate (const cv::Mat &in)
 
static cv::Mat rotate (const cv::Mat &in)
 

Detailed Description

Definition at line 37 of file aruco/include/aruco/arucofidmarkers.h.

Member Function Documentation

static int aruco::FiducidalMarkers::analyzeMarkerImage ( cv::Mat &  grey,
int &  nRotations 
)
staticprivate
static int aruco::FiducidalMarkers::analyzeMarkerImage ( cv::Mat &  grey,
int &  nRotations 
)
staticprivate
static cv::Mat aruco::FiducidalMarkers::createBoardImage ( cv::Size  gridSize,
int  MarkerSize,
int  MarkerDistance,
BoardConfiguration TInfo,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
MarkerDistancedistance between the markers
TInfooutput
excludedIdsset of ids excluded from the board
static cv::Mat aruco::FiducidalMarkers::createBoardImage ( cv::Size  gridSize,
int  MarkerSize,
int  MarkerDistance,
BoardConfiguration TInfo,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
MarkerDistancedistance between the markers
TInfooutput
excludedIdsset of ids excluded from the board
static cv::Mat aruco::FiducidalMarkers::createBoardImage_ChessBoard ( cv::Size  gridSize,
int  MarkerSize,
BoardConfiguration TInfo,
bool  setDataCentered = true,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board in chessboard_like manner

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
TInfooutput
setDataCenteredindicates if the center is set at the center of the board. Otherwise it is the left-upper corner
static cv::Mat aruco::FiducidalMarkers::createBoardImage_ChessBoard ( cv::Size  gridSize,
int  MarkerSize,
BoardConfiguration TInfo,
bool  setDataCentered = true,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board in chessboard_like manner

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
TInfooutput
setDataCenteredindicates if the center is set at the center of the board. Otherwise it is the left-upper corner
static cv::Mat aruco::FiducidalMarkers::createBoardImage_Frame ( cv::Size  gridSize,
int  MarkerSize,
int  MarkerDistance,
BoardConfiguration TInfo,
bool  setDataCentered = true,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board in a frame fashion

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
MarkerDistancedistance between the markers
TInfooutput
setDataCenteredindicates if the center is set at the center of the board. Otherwise it is the left-upper corner
static cv::Mat aruco::FiducidalMarkers::createBoardImage_Frame ( cv::Size  gridSize,
int  MarkerSize,
int  MarkerDistance,
BoardConfiguration TInfo,
bool  setDataCentered = true,
vector< int > *  excludedIds = NULL 
)
throw (cv::Exception
)
static

Creates a printable image of a board in a frame fashion

Parameters
gridSizegrid layout (numer of sqaures in x and Y)
MarkerSizesize of markers sides in pixels
MarkerDistancedistance between the markers
TInfooutput
setDataCenteredindicates if the center is set at the center of the board. Otherwise it is the left-upper corner
Mat aruco::FiducidalMarkers::createMarkerImage ( int  id,
int  size 
)
throw (cv::Exception
)
static

Creates an ar marker with the id specified using a modified version of the hamming code. There are two type of markers: a) These of 10 bits b) these of 3 bits. The latter are employed for applications that need few marker but they must be small. The two type of markers are distinguished by their ids. While the first type of markers have ids in the interval [0-1023], the second type ids in the interval [2000-2006].

10 bits markers

There are a total of 5 rows of 5 cols. Each row encodes a total of 2 bits, so there are 2^10 bits:(0-1023).

The least significative bytes are first (from left-up to to right-bottom)

Example: the id = 110 (decimal) is be represented in binary as : 00 01 10 11 10.

Then, it will generate the following marker:

  1. 1st row encodes 00: 1 0 0 0 0 : hex 0x10
  2. 2nd row encodes 01: 1 0 1 1 1 : hex 0x17
  3. 3nd row encodes 10: 0 1 0 0 1 : hex 0x09
  4. 4th row encodes 11: 0 1 1 1 0 : hex 0x0e
  5. 5th row encodes 10: 0 1 0 0 1 : hex 0x09

Note that : The first bit, is the inverse of the hamming parity. This avoids the 0 0 0 0 0 to be valid These marker are detected by the function getFiduciadlMarker_Aruco_Type1

Definition at line 44 of file aruco/src/aruco/arucofidmarkers.cpp.

static cv::Mat aruco::FiducidalMarkers::createMarkerImage ( int  id,
int  size 
)
throw (cv::Exception
)
static

Creates an ar marker with the id specified using a modified version of the hamming code. There are two type of markers: a) These of 10 bits b) these of 3 bits. The latter are employed for applications that need few marker but they must be small. The two type of markers are distinguished by their ids. While the first type of markers have ids in the interval [0-1023], the second type ids in the interval [2000-2006].

10 bits markers

There are a total of 5 rows of 5 cols. Each row encodes a total of 2 bits, so there are 2^10 bits:(0-1023).

The least significative bytes are first (from left-up to to right-bottom)

Example: the id = 110 (decimal) is be represented in binary as : 00 01 10 11 10.

Then, it will generate the following marker:

  1. 1st row encodes 00: 1 0 0 0 0 : hex 0x10
  2. 2nd row encodes 01: 1 0 1 1 1 : hex 0x17
  3. 3nd row encodes 10: 0 1 0 0 1 : hex 0x09
  4. 4th row encodes 11: 0 1 1 1 0 : hex 0x0e
  5. 5th row encodes 10: 0 1 0 0 1 : hex 0x09

Note that : The first bit, is the inverse of the hamming parity. This avoids the 0 0 0 0 0 to be valid These marker are detected by the function getFiduciadlMarker_Aruco_Type1

static int aruco::FiducidalMarkers::detect ( const cv::Mat &  in,
int &  nRotations 
)
static

Detection of fiducidal aruco markers (10 bits)

Parameters
ininput image with the patch that contains the possible marker
nRotationsnumber of 90deg rotations in clockwise direction needed to set the marker in correct position
Returns
-1 if the image passed is a not a valid marker, and its id in case it really is a marker
static int aruco::FiducidalMarkers::detect ( const cv::Mat &  in,
int &  nRotations 
)
static

Detection of fiducidal aruco markers (10 bits)

Parameters
ininput image with the patch that contains the possible marker
nRotationsnumber of 90deg rotations in clockwise direction needed to set the marker in correct position
Returns
-1 if the image passed is a not a valid marker, and its id in case it really is a marker
static vector<int> aruco::FiducidalMarkers::getListOfValidMarkersIds_random ( int  nMarkers,
vector< int > *  excluded 
)
throw (cv::Exception
)
staticprivate
vector< int > aruco::FiducidalMarkers::getListOfValidMarkersIds_random ( int  nMarkers,
vector< int > *  excluded 
)
throw (cv::Exception
)
staticprivate

Definition at line 426 of file aruco/src/aruco/arucofidmarkers.cpp.

static cv::Mat aruco::FiducidalMarkers::getMarkerMat ( int  id)
throw (cv::Exception
)
static

Similar to createMarkerImage. Instead of returning a visible image, returns a 8UC1 matrix of 0s and 1s with the marker info

cv::Mat aruco::FiducidalMarkers::getMarkerMat ( int  id)
throw (cv::Exception
)
static

Similar to createMarkerImage. Instead of returning a visible image, returns a 8UC1 matrix of 0s and 1s with the marker info

Definition at line 69 of file aruco/src/aruco/arucofidmarkers.cpp.

static int aruco::FiducidalMarkers::hammDistMarker ( cv::Mat  bits)
staticprivate
static int aruco::FiducidalMarkers::hammDistMarker ( cv::Mat  bits)
staticprivate
static cv::Mat aruco::FiducidalMarkers::rotate ( const cv::Mat &  in)
staticprivate
static cv::Mat aruco::FiducidalMarkers::rotate ( const cv::Mat &  in)
staticprivate

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


lidar_camera_calibration
Author(s):
autogenerated on Sat Feb 6 2021 03:39:37