Multi marker that uses bundle adjustment to refine the 3D positions of the markers (point cloud).
More...
|
| MultiMarkerBundle (std::vector< int > &indices) |
| Constructor. More...
|
|
void | MeasurementsReset () |
| Resets the measurements and camera poses that are stored for bundle adjustment. If something goes from in optimization one will call this and acquire new measurements.
|
|
double | GetOptimizationError () |
|
int | GetOptimizationKeyframes () |
|
int | GetOptimizationMarkers () |
|
bool | GetOptimizing () |
|
template<class M > |
void | MeasurementsAdd (const std::vector< M > *markers, const Pose &camera_pose) |
| Adds new measurements that are used in bundle adjustment. More...
|
|
bool | Optimize (Camera *_cam, double stop, int max_iter, Optimization::OptimizeMethod method=Optimization::TUKEY_LM) |
| Runs the bundle adjustment optimization. More...
|
|
virtual void | Reset () |
| Resets the multi marker.
|
|
bool | Save (const char *fname, FILE_FORMAT format=FILE_FORMAT_DEFAULT) |
| Saves multi marker configuration to a text file. More...
|
|
bool | Load (const char *fname, FILE_FORMAT format=FILE_FORMAT_DEFAULT) |
| Loads multi marker configuration from a text file. More...
|
|
| MultiMarker (std::vector< int > &indices) |
| Constructor. More...
|
|
| MultiMarker () |
| Default constructor.
|
|
template<class M > |
double | GetPose (const std::vector< M > *markers, Camera *cam, Pose &pose, cv::Mat &image) |
| Calculates the pose of the camera from multi marker. Method uses the true 3D coordinates of markers to get the initial pose and then optimizes it by minimizing the reprojection error. More...
|
|
template<class M > |
double | GetPose (const std::vector< M > *markers, Camera *cam, Pose &pose) |
|
template<class M > |
double | Update (const std::vector< M > *markers, Camera *cam, Pose &pose, cv::Mat &image) |
| Calls GetPose to obtain camera pose.
|
|
template<class M > |
double | Update (const std::vector< M > *markers, Camera *cam, Pose &pose) |
|
void | PointCloudReset () |
| Reserts the 3D point cloud of the markers.
|
|
void | PointCloudCorners3d (double edge_length, Pose &pose, cv::Point3d corners[4]) |
| Calculates 3D coordinates of marker corners relative to given pose (camera). More...
|
|
void | PointCloudAdd (int marker_id, double edge_length, Pose &pose) |
| Adds marker corners to 3D point cloud of multi marker. More...
|
|
void | PointCloudCopy (const MultiMarker *m) |
| Copies the 3D point cloud from other multi marker object.
|
|
bool | PointCloudIsEmpty () |
| Returns true if the are not points in the 3D opint cloud.
|
|
size_t | Size () |
| Return the number of markers added using PointCloudAdd.
|
|
void | PointCloudGet (int marker_id, int point, double &x, double &y, double &z) |
| Returns 3D co-ordinates of one corner point of a marker. More...
|
|
bool | IsValidMarker (int marker_id) |
| Returns true if the marker is in the point cloud. More...
|
|
template<class M > |
int | SetTrackMarkers (MarkerDetector< M > &marker_detector, Camera *cam, Pose &pose, cv::Mat &image) |
| Set new markers to be tracked for MarkerDetector Sometimes the MultiMarker implementation knows more about marker locations compared to MarkerDetector . Then this method can be used to reset the internal state of MarkerDetector for tracking also these markers.
|
|
|
int | measurements_index (int frame, int marker_id, int marker_corner) |
|
void | _MeasurementsAdd (MarkerIterator &begin, MarkerIterator &end, const Pose &camera_pose) |
|
int | pointcloud_index (int marker_id, int marker_corner, bool add_if_missing=false) |
|
int | get_id_index (int id, bool add_if_missing=false) |
|
double | _GetPose (MarkerIterator &begin, MarkerIterator &end, Camera *cam, Pose &pose, cv::Mat &image) |
|
double | _GetPose (MarkerIterator &begin, MarkerIterator &end, Camera *cam, Pose &pose) |
|
int | _SetTrackMarkers (MarkerDetectorImpl &marker_detector, Camera *cam, Pose &pose, cv::Mat &image) |
|
Multi marker that uses bundle adjustment to refine the 3D positions of the markers (point cloud).
This can be initialized by using e.g. MultiMarkerAverage class.
Definition at line 44 of file MultiMarkerBundle.h.