Project Description
SynthExport allows you to extract the point cloud as well as camera parameter data of a synth on
Photosynth. Point clouds are downloaded automatically and converted to formats that are compatible with most 3D graphics applications. Camera information such as position, focal length and lens distortion of each image is stored as a CSV file.
System requirements
SynthExport requires Windows XP or higher with .NET Framework 3.5 SP1 installed. If you want to compile the sources you'll need Visual Studio 2010 and binary releases of
DotNetZip and
Json.NET. They are not included in the source package.
Instructions
- Exporting data of a synth that is already available on the photosynth.net website:
- Start SynthExport
- Go to your synth on the website and copy the address from your browser, e.g. http://photosynth.net/view.aspx?cid=58b232f9-3e1b-44e4-943d-b133e0583c6a
- Paste this address in the URL text box of SynthExport
- Select the data you want to export (point clouds, camera parameters or both) and click "Export"
- Exporting data of a synth during upload:
- Start Photosynth and create your synth
- When the synther is finished with analyzing your photos and is busy uploading files (shown by the message "Uploading file.."), start SynthExport
- Select the "From file" method and browse to the collection.synth.bin file that should be located in the Photosynth data folder (%tmp%\Photosynther).
- Select the data you want to export (point clouds, camera parameters or both) and click "Export"
FAQ
- What is Photosynth?
- Photosynth is a service similar to flickr or other photo sharing sites, with one big advantage: it is able to reconstruct the photographed scenery and allows users to navigate from photo to photo in 3D.
- What is a point cloud?
- Each synth contains a cloud of colored points in 3D space that have been extracted by the synther. If enough photos have been taken these points form a fairly accurate 3-dimensional model of the photographed object.
- What can be done with the exported point cloud?
- There are many possibilities once you have the point cloud in your favorite 3D modeling software. Since the point cloud itself does not have any textured faces you may first want to remove outlying points and reconstruct the surface.
- Which output formats for point clouds are supported?
- Conversion is supported to the following formats:
- What are camera parameters?
- Photosynth is able to estimate the position and direction of the camera from each image, as well as the focal length and radial lens distortion. SynthExport can export this data as a CSV file with the following columns:
- Image ID
- Camera position X
- Camera position Y
- Camera position Z
- Camera rotation about X axis
- Camera rotation about Y axis
- Camera rotation about Z axis
- Image aspect ratio
- Focal length (relative to the size of the CCD)
- Radial lens distortion K1
- Radial lens distortion K2
- What are coordinate systems?
- Photosynths often have more than one coordinate system. This happens when the synth contains groups of images that don't have any image features in common or when the synther simply wasn't smart enough to put everything together properly. Each coordinate system is associated with at least one image, and has in most cases a point cloud. Camera positions and point clouds are not compatible between different coordinate systems. Therefore, each coordinate system with its point cloud and its camera parameters are exported to separate files.
- How does the export process work?
- The point cloud data is stored in many small bin files that are usually located at the Photosynth servers. However, to enable previewing the point cloud of synths that are still uploading you can also extract the data from a file named collection.synth.bin that is created locally during the synth process (usually in %tmp%\Photosynther). Bin files that belong together are merged and converted to the desired output format. For more information about the structure of these bin files take a look at the (uncommented) source code or read some of the excellent blog posts at the Links section.
- Which programs are suitable for working with point clouds?
- You may want to use software that is capable of meshing colored vertices and reconstructing surfaces. Personally, I don't have tested any other software than MeshLab which seems to do the job quite good. Theoretically, however, all programs that are able to import one of the output formats should work.
Links