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_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 createMarkerImage (int id, int size, bool writeIdWaterMark=true, bool locked=false) 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 cv::Mat getMarkerMat (int id) throw (cv::Exception)
 

Static Private Member Functions

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

Detailed Description

Definition at line 37 of file arucofidmarkers.h.

Member Function Documentation

int aruco::FiducidalMarkers::analyzeMarkerImage ( cv::Mat &  grey,
int &  nRotations 
)
staticprivate

Definition at line 336 of file arucofidmarkers.cpp.

bool aruco::FiducidalMarkers::correctHammMarker ( cv::Mat &  bits)
staticprivate

Definition at line 421 of file arucofidmarkers.cpp.

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

Definition at line 131 of file arucofidmarkers.cpp.

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

Definition at line 178 of file arucofidmarkers.cpp.

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

Definition at line 241 of file arucofidmarkers.cpp.

Mat aruco::FiducidalMarkers::createMarkerImage ( int  id,
int  size,
bool  writeIdWaterMark = true,
bool  locked = false 
)
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

Parameters
writeIdWaterMarkif true, writes a watermark with the marker id
lockedif true, creates etra rectangles lcoking the corners of the marker (new in version 1.2.6)

Definition at line 45 of file arucofidmarkers.cpp.

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

Definition at line 452 of file arucofidmarkers.cpp.

vector< int > aruco::FiducidalMarkers::getListOfValidMarkersIds_random ( int  nMarkers,
vector< int > *  excluded 
)
throw (cv::Exception
)
staticprivate

Definition at line 475 of file arucofidmarkers.cpp.

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 104 of file arucofidmarkers.cpp.

int aruco::FiducidalMarkers::hammDistMarker ( cv::Mat  bits)
staticprivate

Definition at line 308 of file arucofidmarkers.cpp.

Mat aruco::FiducidalMarkers::rotate ( const cv::Mat &  in)
staticprivate

Definition at line 290 of file arucofidmarkers.cpp.


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


asr_aruco_marker_recognition
Author(s): Allgeyer Tobias, Meißner Pascal, Qattan Mohamad
autogenerated on Mon Jun 10 2019 12:40:22