Although I don't have first hand experience with the code, a former labmate of mine (I'm at the Univ. of Washington, and he's now at Google) is one of the leading experts on this area of research, and his VisualSFM [1] tool is, I think, the best and easiest-to-use available online.
Briefly, there are three main steps required to go from images to a 3d viewer like PhotoSynth:
1. Figure out where each image was shot from (the "camera pose") and get a sparse set of 3d points from the scene. These two are estimated simultaneously using bundle adjustment [2].
2. Go from a sparse set of 3d points to a dense 3d model. This is done using a technique called Multiple View Stereo (MVS), of which the leading (open) implementations are PMVS/CMVS [3,4].
3. Build an image-based rendering system that intelligently blends between the 3d models and images to minimize artifacts.
The VisualSFM software will do steps 1 and 2. Step 3 is still quite a challenging problem, but depending on what you're doing, you could use standard 3d modeling environments to look at your data.
Briefly, there are three main steps required to go from images to a 3d viewer like PhotoSynth:
1. Figure out where each image was shot from (the "camera pose") and get a sparse set of 3d points from the scene. These two are estimated simultaneously using bundle adjustment [2].
2. Go from a sparse set of 3d points to a dense 3d model. This is done using a technique called Multiple View Stereo (MVS), of which the leading (open) implementations are PMVS/CMVS [3,4].
3. Build an image-based rendering system that intelligently blends between the 3d models and images to minimize artifacts.
The VisualSFM software will do steps 1 and 2. Step 3 is still quite a challenging problem, but depending on what you're doing, you could use standard 3d modeling environments to look at your data.
[1] http://ccwu.me/vsfm/
[2] http://en.wikipedia.org/wiki/Bundle_adjustment
[3] http://www.di.ens.fr/pmvs/
[4] http://www.di.ens.fr/cmvs/