#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) 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) |
Definition at line 37 of file arucofidmarkers.h.
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
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 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
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 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
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 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:
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
writeIdWaterMark | if 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)
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 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.