Structure From Motion

Structure From Motion is a method for creating 3D models from 2D pictures of an object. This could be pictures taken with an ordinary camera from different directions. The program available for download here is a very simple tool for this kind of model creation. It can handle two pictures with or without background.

Download (1.4 MB)

Please note that the user interface for this program was taken from another program, MeeSoft SmartMorph, and that some of the menu items and features from SmartMorph are left behind. It is an experimental program and it may contain bugs.


Picture 1
Picture 2

3D model created from the two images

The full size pictures for this and another example is included with the program.

How to do it

First try to load the example "Hus.smo" (the one from above), chose Image | 3D model (F9) and click Show 3D. This should give you an impression of what it can do.

Taking pictures
Unfortunately taking pictures suitable for model creation can be hard. If you want to try it for yourself you should follow these guidelines:

Preparing the pictures
First the images should be resized to something like 800 x 600 or 1024 x 768 - anything bigger will take a lot of time to process.
It is not a necessity, but the best result is usually achieved if the background is removed as in the example images. The background should be colored magenta, RGB color (255,0,255). This you have to do in a standard painting program. It is important not to resize the image after having removed the background, as interpolation/antialiasing will produce artefacts at the edges. To not loose image quality, save the pictures in a lossless format like PNG or BMP.
Then load the two images in the Structure From Motion program and mark a number of corresponding points in the images. This should be done as accurate as possible. Mark at least 6 points and preferably more.

Options in the Create 3D model dialog

This is an experimental program and creating good models can be hard. Please do not ask for help about this program.

The algorithm is in part based on this paper:
A Maximum Likelihood Stereo Algorithm
Ingemar J. Cox, Sunita L. Hingorani, Satish B. Rao and Bruce M. Maggs
Computer vision and image understanding vol. 63, No. 3, 1996       Last updated 2013-06-23 by Michael Vinther       [Send e-mail]