Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
aruco::BoardDetector Class Reference

This class detects AR boards Version 1.2 There are two modes for board detection. First, the old way. (You first detect markers with MarkerDetector and then call to detect in this class. More...

#include <boarddetector.h>

List of all members.

Public Member Functions

 BoardDetector (bool setYPerpendicular=false)
float detect (const cv::Mat &im) throw (cv::Exception)
float detect (const vector< Marker > &detectedMarkers, const BoardConfiguration &BConf, Board &Bdetected, cv::Mat camMatrix=cv::Mat(), cv::Mat distCoeff=cv::Mat(), float markerSizeMeters=-1) throw (cv::Exception)
float detect (const vector< Marker > &detectedMarkers, const BoardConfiguration &BConf, Board &Bdetected, const CameraParameters &cp, float markerSizeMeters=-1) throw (cv::Exception)
float get_repj_err_thres () const
BoardgetDetectedBoard ()
vector< Marker > & getDetectedMarkers ()
MarkerDetectorgetMarkerDetector ()
bool isYPerpendicular ()
void set_repj_err_thres (float Repj_err_thres)
void setParams (const BoardConfiguration &bc, const CameraParameters &cp, float markerSizeMeters=-1)
void setParams (const BoardConfiguration &bc)
void setYPerpendicular (bool enable)
void setYPerperdicular (bool enable)

Static Public Member Functions

static Board detect (const cv::Mat &Image, const BoardConfiguration &bc, const CameraParameters &cp, float markerSizeMeters=-1)

Private Member Functions

void rotateXAxis (cv::Mat &rotation)

Private Attributes

bool _areParamsSet
BoardConfiguration _bconf
Board _boardDetected
CameraParameters _camParams
float _markerSize
MarkerDetector _mdetector
bool _setYPerpendicular
vector< Marker_vmarkers
float repj_err_thres

Detailed Description

This class detects AR boards Version 1.2 There are two modes for board detection. First, the old way. (You first detect markers with MarkerDetector and then call to detect in this class.

Second: New mode, marker detection is included in the class

  CameraParameters CP;
  CP.readFromFile(path_cp)
  BoardConfiguration BC;
  BC.readFromFile(path_bc);
  BoardDetector BD;
  BD.setParams(BC,CP); //or only BD.setParams(BC)
  //capture image
  cv::Mat im;
  capture_image(im);
  
  float prob=BD.detect(im);
  if (prob>0.3) 
        CvDrawingUtils::draw3DAxis(im,BD.getDetectedBoard(),CP);

Definition at line 65 of file boarddetector.h.


Constructor & Destructor Documentation

aruco::BoardDetector::BoardDetector ( bool  setYPerpendicular = false)

See discussion in

See also:
enableRotateXAxis. Do not change unless you know what you are doing

Definition at line 41 of file boarddetector.cpp.


Member Function Documentation

float aruco::BoardDetector::detect ( const cv::Mat &  im) throw (cv::Exception)

Detect markers, and then, look for the board indicated in setParams()

Returns:
value indicating the likelihood of having found the marker

Definition at line 68 of file boarddetector.cpp.

float aruco::BoardDetector::detect ( const vector< Marker > &  detectedMarkers,
const BoardConfiguration BConf,
Board Bdetected,
cv::Mat  camMatrix = cv::Mat(),
cv::Mat  distCoeff = cv::Mat(),
float  markerSizeMeters = -1 
) throw (cv::Exception)

Given the markers detected, determines if there is the board passed

Parameters:
detectedMarkersresult provided by aruco::ArMarkerDetector
BConfthe board you want to see if is present
Bdetectedoutput information of the detected board
camMatrixcamera matrix with intrinsics
distCoeffcamera distorsion coeff
camMatrixintrinsic camera information.
distCoeffcamera distorsion coefficient. If set Mat() if is assumed no camera distorion
markerSizeMeterssize of the marker sides expressed in meters
Returns:
value indicating the likelihood of having found the marker
float aruco::BoardDetector::detect ( const vector< Marker > &  detectedMarkers,
const BoardConfiguration BConf,
Board Bdetected,
const CameraParameters cp,
float  markerSizeMeters = -1 
) throw (cv::Exception)

Definition at line 82 of file boarddetector.cpp.

Board aruco::BoardDetector::detect ( const cv::Mat &  Image,
const BoardConfiguration bc,
const CameraParameters cp,
float  markerSizeMeters = -1 
) [static]

Static version (all in one). Detects the board indicated

Parameters:
Imageinput image
bcthe board you want to see if is present
cpcamera parameters
markerSizeMeterssize of the marker sides expressed in meters (not needed in the board is expressed in meters)
Returns:
Board detected

Static version (all in one)

Definition at line 221 of file boarddetector.cpp.

float aruco::BoardDetector::get_repj_err_thres ( ) const [inline]

Definition at line 134 of file boarddetector.h.

Returns a reference to the board detected

Definition at line 86 of file boarddetector.h.

Returns the vector of markers detected

Definition at line 92 of file boarddetector.h.

Returns a reference to the internal marker detector

Definition at line 89 of file boarddetector.h.

Definition at line 127 of file boarddetector.h.

void aruco::BoardDetector::rotateXAxis ( cv::Mat &  rotation) [private]

Definition at line 202 of file boarddetector.cpp.

void aruco::BoardDetector::set_repj_err_thres ( float  Repj_err_thres) [inline]

Sets the threshold for reprjection test. Pixels that after estimating the camera location projects 'repj_err_thres' pixels farther from its original location are discarded as outliers. By default it is set to -1, meaning that not reprojection test is performed

Definition at line 133 of file boarddetector.h.

void aruco::BoardDetector::setParams ( const BoardConfiguration bc,
const CameraParameters cp,
float  markerSizeMeters = -1 
)

Use if you plan to let this class to perform marker detection too

Definition at line 49 of file boarddetector.cpp.

Definition at line 59 of file boarddetector.cpp.

void aruco::BoardDetector::setYPerpendicular ( bool  enable) [inline]

By default, the Y axis is set to point up. However this is not the default operation mode of opencv, which produces the Z axis pointing up instead. So, to achieve this change, we have to rotate the X axis.

Definition at line 125 of file boarddetector.h.

void aruco::BoardDetector::setYPerperdicular ( bool  enable) [inline]

Definition at line 126 of file boarddetector.h.


Member Data Documentation

Definition at line 142 of file boarddetector.h.

Definition at line 143 of file boarddetector.h.

Definition at line 144 of file boarddetector.h.

Definition at line 146 of file boarddetector.h.

Definition at line 145 of file boarddetector.h.

Definition at line 147 of file boarddetector.h.

Definition at line 139 of file boarddetector.h.

Definition at line 148 of file boarddetector.h.

Definition at line 145 of file boarddetector.h.


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