17 #ifndef _Aruco_MarkerMap_h
18 #define _Aruco_MarkerMap_h
23 #include <opencv2/core/core.hpp>
49 return static_cast<float>(cv::norm(points[0] - points[1]));
51 inline cv::Point3f
at(
size_t idx)
const
53 return points.at(idx);
75 str <<
id <<
" " << size() <<
" ";
76 for (
size_t i = 0; i < size(); i++)
77 str << at(i).x <<
" " << at(i).y <<
" " << at(i).z <<
" ";
84 for (
size_t i = 0; i < size(); i++)
85 str >> points[i].x >> points[i].y >> points[i].z;
127 return mInfoType == METERS;
133 return mInfoType == PIX;
137 MarkerMap convertToMeters(
float markerSize)
const;
144 std::vector<int> getIndices(
const vector<Marker>& markers)
const;
152 int getIndexOfMarkerId(
int id)
const;
155 void getIdList(vector<int>& ids,
bool append =
true)
const;
160 cv::Mat getImage(
float METER2PIX = 0)
const;
164 void saveToFile(std::string sfile);
167 void readFromFile(std::string sfile);
171 std::pair<cv::Mat, cv::Mat> calculateExtrinsics(
const std::vector<aruco::Marker>& markers,
172 float markerSize, cv::Mat CameraMatrix,
204 void saveToFile(cv::FileStorage& fs);
207 void readFromFile(cv::FileStorage& fs);
210 void toStream(std::ostream& str);
211 void fromStream(std::istream& str);