Simple structure from motion implementation using CameraEC , MarkerDetectorEC and TrackerFeaturesEC.  
 More...
#include <SfM.h>
|  | 
| void | AddMarker (int marker_id, double edge_length, Pose &pose) | 
|  | Add an marker to be a basis for tracking. It is good idea to call SetResetPoint after these.  More... 
 | 
|  | 
| bool | AddMultiMarker (const char *fname, FILE_FORMAT format=FILE_FORMAT_XML) | 
|  | Add MultiMarker from file as a basis for tracking. It is good idea to call SetResetPoint after these.  More... 
 | 
|  | 
| bool | AddMultiMarker (MultiMarkerEC *mm) | 
|  | Add MultiMarker to be a basis for tracking. It is good idea to call SetResetPoint after these.  More... 
 | 
|  | 
| void | Clear () | 
|  | Clear all tracked features.  More... 
 | 
|  | 
| void | Draw (IplImage *rgba) | 
|  | Draw debug information about the tracked features and detected markers.  More... 
 | 
|  | 
| CameraEC * | GetCamera () | 
|  | Get the camera used internally. You need to use this to set correct camera calibration (see SamplePointcloud)  More... 
 | 
|  | 
| Pose * | GetPose () | 
|  | Get the estimated pose.  More... 
 | 
|  | 
| void | Reset (bool reset_also_triangulated=true) | 
|  | Reset the situation back to the point it was when SetResetPoint was called.  More... 
 | 
|  | 
| void | SetResetPoint () | 
|  | Remember the current state and return here when the Reset is called.  More... 
 | 
|  | 
| void | SetScale (double s) | 
|  | Set the suitable scale to be used. This affects quite much how the tracking behaves (when features are triangulated etc.)  More... 
 | 
|  | 
|  | SimpleSfM () | 
|  | Constructor.  More... 
 | 
|  | 
| bool | Update (IplImage *image, bool assume_plane=true, bool triangulate=true, float reproj_err_limit=5.f, float triangulate_angle=15.f) | 
|  | Update position assuming that camera is moving with 6-DOF.  More... 
 | 
|  | 
| bool | UpdateRotationsOnly (IplImage *image) | 
|  | Update position assuming that user is more standing still and viewing the environment.  More... 
 | 
|  | 
| bool | UpdateTriangulateOnly (IplImage *image) | 
|  | Update camera 6-DOF position using triangulated points only (This is the old version of Update)  More... 
 | 
|  | 
Simple structure from motion implementation using CameraEC , MarkerDetectorEC and TrackerFeaturesEC. 
See SamplePointcloud for usage example. 
- Examples: 
- SamplePointcloud.cpp.
Definition at line 41 of file SfM.h.
  
  | 
        
          | alvar::SimpleSfM::SimpleSfM | ( |  | ) |  |  | inline | 
 
Constructor. 
Definition at line 93 of file SfM.h.
 
 
      
        
          | void alvar::SimpleSfM::AddMarker | ( | int | marker_id, | 
        
          |  |  | double | edge_length, | 
        
          |  |  | Pose & | pose | 
        
          |  | ) |  |  | 
      
 
Add an marker to be a basis for tracking. It is good idea to call SetResetPoint after these. 
- Examples: 
- SamplePointcloud.cpp.
Definition at line 98 of file SfM.cpp.
 
 
Add MultiMarker to be a basis for tracking. It is good idea to call SetResetPoint after these. 
Definition at line 94 of file SfM.cpp.
 
 
      
        
          | void alvar::SimpleSfM::Clear | ( |  | ) |  | 
      
 
 
      
        
          | void alvar::SimpleSfM::Draw | ( | IplImage * | rgba | ) |  | 
      
 
 
      
        
          | CameraEC * alvar::SimpleSfM::GetCamera | ( |  | ) |  | 
      
 
Get the camera used internally. You need to use this to set correct camera calibration (see SamplePointcloud) 
- Examples: 
- SamplePointcloud.cpp.
Definition at line 85 of file SfM.cpp.
 
 
      
        
          | Pose * alvar::SimpleSfM::GetPose | ( |  | ) |  | 
      
 
 
      
        
          | void alvar::SimpleSfM::Reset | ( | bool | reset_also_triangulated = true | ) |  | 
      
 
Reset the situation back to the point it was when SetResetPoint was called. 
- Examples: 
- SamplePointcloud.cpp.
Definition at line 66 of file SfM.cpp.
 
 
      
        
          | void alvar::SimpleSfM::SetResetPoint | ( |  | ) |  | 
      
 
 
  
  | 
        
          | void alvar::SimpleSfM::SetScale | ( | double | s | ) |  |  | inline | 
 
Set the suitable scale to be used. This affects quite much how the tracking behaves (when features are triangulated etc.) 
- Examples: 
- SamplePointcloud.cpp.
Definition at line 101 of file SfM.h.
 
 
      
        
          | bool alvar::SimpleSfM::Update | ( | IplImage * | image, | 
        
          |  |  | bool | assume_plane = true, | 
        
          |  |  | bool | triangulate = true, | 
        
          |  |  | float | reproj_err_limit = 5.f, | 
        
          |  |  | float | triangulate_angle = 15.f | 
        
          |  | ) |  |  | 
      
 
 
      
        
          | bool alvar::SimpleSfM::UpdateRotationsOnly | ( | IplImage * | image | ) |  | 
      
 
Update position assuming that user is more standing still and viewing the environment. 
Definition at line 384 of file SfM.cpp.
 
 
      
        
          | bool alvar::SimpleSfM::UpdateTriangulateOnly | ( | IplImage * | image | ) |  | 
      
 
Update camera 6-DOF position using triangulated points only (This is the old version of Update) 
Definition at line 339 of file SfM.cpp.
 
 
Definition at line 78 of file SfM.h.
 
 
      
        
          | std::map<int, Feature> alvar::SimpleSfM::container | 
      
 
 
  
  | 
        
          | std::map<int, Feature> alvar::SimpleSfM::container_reset_point |  | protected | 
 
Definition at line 75 of file SfM.h.
 
 
      
        
          | std::map<int, Feature> alvar::SimpleSfM::container_triangulated | 
      
 
 
  
  | 
        
          | std::map<int, Feature> alvar::SimpleSfM::container_triangulated_reset_point |  | protected | 
 
Definition at line 76 of file SfM.h.
 
 
Definition at line 79 of file SfM.h.
 
 
  
  | 
        
          | bool alvar::SimpleSfM::markers_found |  | protected | 
 
Definition at line 86 of file SfM.h.
 
 
  
  | 
        
          | std::string alvar::SimpleSfM::multi_marker_file |  | protected | 
 
Definition at line 85 of file SfM.h.
 
 
  
  | 
        
          | Pose alvar::SimpleSfM::pose |  | protected | 
 
Definition at line 81 of file SfM.h.
 
 
  
  | 
        
          | Pose alvar::SimpleSfM::pose_difference |  | protected | 
 
Definition at line 89 of file SfM.h.
 
 
  
  | 
        
          | bool alvar::SimpleSfM::pose_ok |  | protected | 
 
Definition at line 82 of file SfM.h.
 
 
  
  | 
        
          | Pose alvar::SimpleSfM::pose_original |  | protected | 
 
Definition at line 88 of file SfM.h.
 
 
  
  | 
        
          | double alvar::SimpleSfM::scale |  | protected | 
 
Definition at line 87 of file SfM.h.
 
 
Definition at line 80 of file SfM.h.
 
 
  
  | 
        
          | bool alvar::SimpleSfM::update_tri |  | protected | 
 
Definition at line 84 of file SfM.h.
 
 
The documentation for this class was generated from the following files: