#include <arucofidmarkers.h>
|
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) |
|
Definition at line 37 of file arucofidmarkers.h.
◆ analyzeMarkerImage()
int aruco::FiducidalMarkers::analyzeMarkerImage |
( |
cv::Mat & |
grey, |
|
|
int & |
nRotations |
|
) |
| |
|
staticprivate |
◆ correctHammMarker()
bool aruco::FiducidalMarkers::correctHammMarker |
( |
cv::Mat & |
bits | ) |
|
|
staticprivate |
◆ createBoardImage()
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
-
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 131 of file arucofidmarkers.cpp.
◆ createBoardImage_ChessBoard()
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
-
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 178 of file arucofidmarkers.cpp.
◆ createBoardImage_Frame()
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
-
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 241 of file arucofidmarkers.cpp.
◆ createMarkerImage()
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:
- 1st row encodes 00: 1 0 0 0 0 : hex 0x10
- 2nd row encodes 01: 1 0 1 1 1 : hex 0x17
- 3nd row encodes 10: 0 1 0 0 1 : hex 0x09
- 4th row encodes 11: 0 1 1 1 0 : hex 0x0e
- 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
-
writeIdWaterMark | if true, writes a watermark with the marker id |
locked | if true, creates etra rectangles lcoking the corners of the marker (new in version 1.2.6) |
Definition at line 45 of file arucofidmarkers.cpp.
◆ detect()
int aruco::FiducidalMarkers::detect |
( |
const cv::Mat & |
in, |
|
|
int & |
nRotations |
|
) |
| |
|
static |
Detection of fiducidal aruco markers (10 bits)
- Parameters
-
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 |
- 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.
◆ getListOfValidMarkersIds_random()
vector< int > aruco::FiducidalMarkers::getListOfValidMarkersIds_random |
( |
int |
nMarkers, |
|
|
vector< int > * |
excluded |
|
) |
| |
throw | ( | cv::Exception |
| ) | | |
|
staticprivate |
◆ getMarkerMat()
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.
◆ hammDistMarker()
int aruco::FiducidalMarkers::hammDistMarker |
( |
cv::Mat |
bits | ) |
|
|
staticprivate |
◆ rotate()
Mat aruco::FiducidalMarkers::rotate |
( |
const cv::Mat & |
in | ) |
|
|
staticprivate |
The documentation for this class was generated from the following files: