Trimensional: 3D Scanner for iPhone
trimensional.com
trimensional.com
See this Google video for a similar technique. http://www.youtube.com/watch?v=rxNg-tXPPWc
I've seen the laser scanners but they're relatively expensive. Is there anything like a mount that takes two iphones, and software that can take those two photos to create atleast a projection?
For large objects, like buildings, you would need either expensive laser scanners or something which solves the multi-view stereo problem. There are systems capable of doing this, such as Photosynth, but in general it's quite involved with no easy solutions.
For medium range models, such as automotive applications, you could have a pair of cameras aligned in parallel and connected to a PC/laptop then use a utility like v4l2stereo.
I found this thread to be a pretty good summary of Kinect progress into 3d-scanning.
http://groups.google.com/group/makerbot/browse_thread/thread...
http://philohome.com/scan3d/scan3d.htm http://philohome.com/scan3dlaser/scan3dlaser.htm
You might also be interested in the Makerbot folks' structured light 3d scanner kit: http://blog.makerbot.com/2010/09/14/new-makerbot-3d-scanner-...
If you're not already familiar with OpenCV, it's a rather good (and well documented!) open source image processing library. It's written in C++ but has bindings for a bunch of other languages too.
There is also software that builds models from silhouette methods, that usually require you printing out targets which you place the model, so of like a manual turntable approach. I can't remember the name of software that does this at the moment, but its out there.
Or you could work from video (just from a single camera) that you move around. That can be effective, not sure of the best software for doing this - it's called structure from motion, a quick google shows some source at this project site: http://phototour.cs.washington.edu/
There some code out there for a do it yourself laser scanner - this isn't what I was thinking of but it seems kind of cool: http://www.youtube.com/watch?v=xK5eYhpBtQc
I've also seen some do it yourself structured light software (ie bring your own projector and camera), that seems to work ok.
It kind of depends on what size and type of objects you want to scan - things like the surface properties could be important - also how long you can keep it still.
Cool: that it works in a decent way, and uses a neat trick.
Uncool: You can't export the image into a 3D file, making it 99% less useful that it would be otherwise.
Suggestion: export it as VRML, it's trivial format that you can generate starting from your points. Use this format (from my own code, so use it as you wish):
fprintf(fp,
"#VRML V2.0 utf8\n"
"Shape {\n"
" appearance Appearance {\n"
" material Material {\n"
" diffuseColor .5 .5 .5\n"
" }\n"
" }\n"
" geometry ElevationGrid {\n"
" xDimension %d\n"
" zDimension %d\n"
" xSpacing 0.01\n"
" zSpacing 0.01\n"
" solid FALSE\n"
" creaseAngle 6.28\n"
" height [\n", hgt->width, hgt->height
);
for (y = 0; y < hgt->height ; y++) {
for (x = 0; x < hgt->width; x++) {
height = getheight(x,y);
h *= YOUR_3D_MULT_FACTOR;
fprintf(fp, "%f", h);
if (y != hgt->height-1 && x != hgt->width-1) fprintf(fp,",");
if (x == hgt->width) fprintf(fp,"\n");
}
}
fprintf(fp,
" ]\n"
" }\n"
"}\n"
3d studio and other programs will happily import this stuff.I prefer the even simpler Wavefront OBJ format as a scratch format. It's about as printf-compatible as it gets and is supported in many more places than VRML.
Btw while VRML as a plugin and the idea of a 3D web sounds now 90s, the data format itself is too bad.
If I hadn't been at home, I would have just left the page and moved onto to something else - missed sale.
More like (I'm guessing) it uses the change in reflected intensity with respect to the change in light position to estimate a surface normal (e.g., forehead is the same for all light positions, left side of your nose is bright when the left light is on, dark when the right light is on, right side of nose vice versa, etc). It then finds a surface that agrees with these normals by solving a partial differential equation. Clever, not simple. (Although I guess it's a compliment to say they make it look easy.)
There are other possible methods, such as the "photo popup" created at CMU some years ago, but these rely heavily upon "dodgy heuristics" and often fail to give a good result.
Also note that the method used by this app is very short ranged, and uses the LCD's backlight while it's imaging, so there's zero feedback, making any kind of interactive application impossible.
1: There are third party accessories to make this easy and repeatable, built with varying levels of quality. Here's a fairly cheap one, circa 2003: http://www.dansdata.com/photo3d.htm
1. Illuminate 2. Take photo 3. Show photo
Repeat.
If step 2 is really short, you could have the illumination phase be much shorter than the show photo phase and the user of the phone would see it as 4 short flashes over their own photo.