Static Public Member Functions | Static Private Member Functions
aruco::FiducidalMarkers Class Reference

#include <arucofidmarkers.h>

List of all members.

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) 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].
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 
) [static, private]

Definition at line 326 of file arucofidmarkers.cpp.

bool aruco::FiducidalMarkers::correctHammMarker ( cv::Mat &  bits) [static, private]

Definition at line 415 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 102 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 148 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 208 of file arucofidmarkers.cpp.

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

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

vector< int > aruco::FiducidalMarkers::getListOfValidMarkersIds_random ( int  nMarkers,
vector< int > *  excluded 
) throw (cv::Exception) [static, private]

Definition at line 484 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 76 of file arucofidmarkers.cpp.

int aruco::FiducidalMarkers::hammDistMarker ( cv::Mat  bits) [static, private]

Definition at line 279 of file arucofidmarkers.cpp.

Mat aruco::FiducidalMarkers::rotate ( const cv::Mat &  in) [static, private]

Definition at line 258 of file arucofidmarkers.cpp.


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


ar_sys
Author(s): Hamdi Sahloul , Rafael Muñoz Salinas , Bence Magyar
autogenerated on Sun Oct 5 2014 22:12:49