35 #ifndef _vpDetectorAprilTag_h_
36 #define _vpDetectorAprilTag_h_
40 #include <visp3/core/vpConfig.h>
42 #ifdef VISP_HAVE_APRILTAG
43 #include <visp3/core/vpCameraParameters.h>
44 #include <visp3/core/vpHomogeneousMatrix.h>
45 #include <visp3/core/vpImage.h>
46 #include <visp3/core/vpColor.h>
47 #include <visp3/detection/vpDetectorBase.h>
237 DEMENTHON_VIRTUAL_VS,
241 BEST_RESIDUAL_VIRTUAL_VS,
244 HOMOGRAPHY_ORTHOGONAL_ITERATION
248 const vpPoseEstimationMethod &poseEstimationMethod = HOMOGRAPHY_VIRTUAL_VS);
255 std::vector<vpHomogeneousMatrix> &cMo_vec, std::vector<vpHomogeneousMatrix> *cMo_vec2=NULL,
256 std::vector<double> *projErrors=NULL, std::vector<double> *projErrors2=NULL);
260 double *projError=NULL,
double *projError2=NULL);
265 inline vpPoseEstimationMethod getPoseEstimationMethod()
const {
return m_poseEstimationMethod; }
267 std::vector<std::vector<vpImagePoint> > getTagsCorners()
const;
268 std::vector<int> getTagsId()
const;
269 std::vector<std::vector<vpPoint> > getTagsPoints3D(
const std::vector<int>& tagsId,
const std::map<int, double>& tagsSize)
const;
271 void setAprilTagDecodeSharpening(
double decodeSharpening);
272 void setAprilTagFamily(
const vpAprilTagFamily &tagFamily);
273 void setAprilTagNbThreads(
int nThreads);
274 void setAprilTagPoseEstimationMethod(
const vpPoseEstimationMethod &poseEstimationMethod);
275 void setAprilTagQuadDecimate(
float quadDecimate);
276 void setAprilTagQuadSigma(
float quadSigma);
277 void setAprilTagRefineDecode(
bool refineDecode);
278 void setAprilTagRefineEdges(
bool refineEdges);
279 void setAprilTagRefinePose(
bool refinePose);
284 unsigned int thickness=2) {
285 m_displayTag = display;
286 m_displayTagColor = color;
287 m_displayTagThickness = thickness;
292 void setZAlignedWithCameraAxis(
bool zAlignedWithCameraFrame);
297 unsigned int m_displayTagThickness;
317 os <<
"HOMOGRAPHY_VIRTUAL_VS";
321 os <<
"DEMENTHON_VIRTUAL_VS";
325 os <<
"LAGRANGE_VIRTUAL_VS";
329 os <<
"BEST_RESIDUAL_VIRTUAL_VS";
333 os <<
"HOMOGRAPHY_ORTHOGONAL_ITERATION";
337 os <<
"ERROR_UNKNOWN_POSE_METHOD!";
384 os <<
"STANDARD52h13";
388 os <<
"STANDARD41h12";