aruco_base.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Lukas Pfeifhofer <lukas.pfeifhofer@devlabs.pro>
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors
16  * may be used to endorse or promote products derived from this software without
17  * specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #include "tuw_aruco/aruco_base.h"
33 
34 ArUcoBase::ArUcoBase() : params_() {
36 }
37 
39 
40 void ArUcoBase::detectMarkers(vector<aruco::Marker> &markers, cv::Mat image) {
41  detector_.detect(image, markers);
42 }
43 
44 void ArUcoBase::estimatePose(vector<ArUcoMarkerPose> &markerPoses, vector<aruco::Marker> &markers, aruco::CameraParameters cameraParams) {
45  markerPoses.clear();
46  for (auto &marker:markers) {
47  bool success = tracker_[marker.id].estimatePose(marker, cameraParams, params_.getMarkerSize(), 1.0f);
48  if(success){
49  cv::Mat rtMatrix = tracker_[marker.id].getRTMatrix();
50  markerPoses.push_back(ArUcoMarkerPose(marker.id, rtMatrix));
51  }
52  }
53 }
54 
56  return params_;
57 }
58 
63 }
ArUcoParameters params_
Definition: aruco_base.h:52
void refreshParameters()
Definition: aruco_base.cpp:59
void setThresholdParams(double param1, double param2)
aruco::MarkerDetector detector_
Definition: aruco_base.h:54
void setDictionary(std::string dict_type, float error_correction_rate=0)
std::vector< aruco::Marker > detect(const cv::Mat &input)
void setThresholdParamRange(size_t r1=0, size_t r2=0)
void estimatePose(vector< ArUcoMarkerPose > &markerPoses, vector< aruco::Marker > &markers, aruco::CameraParameters cameraParams)
Definition: aruco_base.cpp:44
Parameters of the camera.
std::string getDictionary()
std::map< uint32_t, aruco::MarkerPoseTracker > tracker_
Definition: aruco_base.h:55
void detectMarkers(vector< aruco::Marker > &markers, cv::Mat image)
Definition: aruco_base.cpp:40
ArUcoParameters & getParameters()
Definition: aruco_base.cpp:55


tuw_aruco
Author(s): Lukas Pfeifhofer
autogenerated on Mon Jun 10 2019 15:40:45