title: Visual Odometry (aka. Egomotion estimation) with OpenCV
body: <p>I'm planning to implement an application with augmented reality features. For one of the features I need an egomotion estimation. Only the camera is moving, in a space with fixed objects (nothing or only small parts will be moving, so that they might be ignored).</p>
  
  <p>So I searched and read a lot and stumbled upon <a href="http://opencv.org/">OpenCV</a>. Wikipedia explicitly states that <a href="http://en.wikipedia.org/wiki/OpenCV#Applications">it could be used for egomotion</a>. But I cannot find any documentation about it.</p>
  
  <ol>
  <li>Do I need to implement the egomotion algorithm by myself with OpenCV's object detection methods? (I think it would be very complex, because objects will move in different speed depending on their distance to the camera. And I also need to regard rotations.)</li>
  <li>If so, where should I start? Is there a good code example for a <a href="http://en.wikipedia.org/wiki/Kanade%E2%80%93Lucas%E2%80%93Tomasi_feature_tracker#Further_generalizations">Kanade–Lucas–Tomasi feature tracker with support for scaling and rotation</a>?</li>
  </ol>
  
  <p>P.S.: I also know about marker based frameworks like <a href="https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality">vuforia</a>, but using a marker is something I would like to prevent, as it restricts the possible view points.</p>
  
  <p><em>Update 2013-01-08: I learned that Egomotion Estimation is better known as Visual Odometry. So I updated the title.</em></p>