#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) 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 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) |
Definition at line 37 of file arucofidmarkers.h.
int aruco::FiducidalMarkers::analyzeMarkerImage | ( | cv::Mat & | grey, |
int & | nRotations | ||
) | [static, private] |
Definition at line 316 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
gridSize | grid layout (numer of sqaures in x and Y) |
MarkerSize | size of markers sides in pixels |
MarkerDistance | distance between the markers |
TInfo | output |
excludedIds | set of ids excluded from the board |
Definition at line 95 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
gridSize | grid layout (numer of sqaures in x and Y) |
MarkerSize | size of markers sides in pixels |
TInfo | output |
setDataCentered | indicates if the center is set at the center of the board. Otherwise it is the left-upper corner |
Definition at line 141 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
gridSize | grid layout (numer of sqaures in x and Y) |
MarkerSize | size of markers sides in pixels |
MarkerDistance | distance between the markers |
TInfo | output |
setDataCentered | indicates if the center is set at the center of the board. Otherwise it is the left-upper corner |
Definition at line 201 of file arucofidmarkers.cpp.
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:
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 arucofidmarkers.cpp.
int aruco::FiducidalMarkers::detect | ( | const cv::Mat & | in, |
int & | nRotations | ||
) | [static] |
Detection of fiducidal aruco markers (10 bits)
in | input image with the patch that contains the possible marker |
nRotations | number of 90deg rotations in clockwise direction needed to set the marker in correct position |
Definition at line 405 of file arucofidmarkers.cpp.
vector< int > aruco::FiducidalMarkers::getListOfValidMarkersIds_random | ( | int | nMarkers, |
vector< int > * | excluded | ||
) | throw (cv::Exception) [static, private] |
Definition at line 426 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 69 of file arucofidmarkers.cpp.
int aruco::FiducidalMarkers::hammDistMarker | ( | cv::Mat | bits | ) | [static, private] |
Definition at line 269 of file arucofidmarkers.cpp.
Mat aruco::FiducidalMarkers::rotate | ( | const cv::Mat & | in | ) | [static, private] |
Definition at line 248 of file arucofidmarkers.cpp.