Showing posts with label photosynth. Show all posts
Showing posts with label photosynth. Show all posts

Friday, 13 March 2009

Photosynth for iPhone : iSynth

I recently blogged about Photosynth being available on Macs and Linux via Moonlight, but having real Photosynth on the iPhone is pretty darn cool! You might as well just download it now (if you have an iDevice) and read the instructions.

Here's a quick preview of how it looks (read to the end for my favourite feature). The navigation has an 'iPhone-y' feel to it:
isynth isynth
and it was easy to find my own previously uploaded synths:
sydney harbour synth
navigation is similar to the desktop version (and ever so slightly unintuitive on the iPhone occasionally, when you seem to have to 'drag' the opposite way to what you expect)
sydney harbour photosynth
but my FAVOURITE features are the point cloud and camera positions... you can clearly see (below) that my entire 'Sydney Harbour Synth' was formed from photos taken off a ferry travelling across the harbour (away from the CBD)!
sydney harbour photosynth point cloud

I'm impressed! Even moreso since it wasn't even written by Microsoft, but an intern who worked in the Photosynth team last year. Great job Greg Pascale!

Monday, 23 February 2009

Photosynth point cloud in c# (beta...)

Further to this post, I've done a bit more work on the C# version of this Python script to process multiple bin files, format the result for MeshLab and save it as a file with .ply extension (thanks to comments on this post).
View the code Program.cs
and the sample output points_0_0.bin.ply

Here's how the example Sydney Harbour synth looks on Photosynth.net


And this is the Meshlab .ply



Obviously I still haven't got the color parsing quite right (and I'm not 100% sure the point-count is correct...) but it's clearly the same set of points, so the C# code must be doing something right :)

Thursday, 19 February 2009

Photosynth point cloud in c# (alpha...)

Recent posts concerned with Photosynth and its availability on Silverlight 2.0 (and Moonlight) lead me to thinking about how to utilize the data generated by Photosynth (in Deep Zoom Viewer for example).

The first post - Exporting point clouds from Photosynth - was linked directly from Blaise Aguera y Arcas himself; it linked to another with some more detailed instructions - Photosynth Export Tutorial. Unfortunately all the code is in Python.

It seemed obvious to try and convert the Python script bin_to_csv.py to C#. At the risk of embarrassing myself with a poor translation, I'm posting the "work in progress" here in case it's of interest.

You can view the code for the .NET Console application (excerpt below) or download the Visual Studio project and test data ZIPped (238Kb)
code excerpt
NOTE: that I couldn't get the offset calculation to work - I ended up manually cycling through even numbers to get decent output for each .bin file - obviously this suggests perhaps I've screwed something up; but until I get time to test/work on it further, I'm not sure what...

I was testing data from this synth of Sydney



which seems to be just two files: points_0_0.bin and points_0_1.bin.
The output from the C# is points_0_0.txt (216Kb) and points_0_1.txt (109Kb).

Here's the first few lines
-6.723576, -1.410307 ,0.5756224, 4, 60, 8
-4.927393, -0.02451534 ,0.8836676, 21, 41, 21
-1.982108, 3.687859 ,0.03735788, 22, 45, 22
-1.845265, 3.327285 ,0.2232598, 6, 13, 6
-1.977082, 3.292458 ,0.3644025, 2, 8, 6
-1.478826, 3.45144 ,0.3358887, 9, 17, 9


I'm pretty sure at least some of the data is good - I could plot the first 56 points on Vladimir Bodurov's Silverlight 3D project, but I haven't had a chance to validate them any further.