Is there any way of converting a 2D image captured by a normal web camera to be converted into a 3D model? I'm using C# so any algorithm based in C# would be helpful.
Convert a 2D image to a 3D model
4.4k Views Asked by Kasun Peiris AtThere are 4 best solutions below

I want to say "Print it out", since a plane means a flat surface in the 3D world, like a piece of paper.
But really, you just want to provide a third dimension value for each point. So decide where in your 3D space you want it to be, and do the necessary maths. For example, if you want it on a "wall", then map your x,y coordinates to x, 0, z instead.
-edited for new question...
You need to work out how far away each point is from the camera. Very hard to do, as the camera can't tell how far the light has travelled.

If you have more than one high(medium) quality image taken from different camera position it's possible. This process called "structure from motion"
http://en.wikipedia.org/wiki/Structure_from_motion
and usually include very heavy and complex calculation. The one exception is if the images are taken by stereocamrea or aligned cameras from fixed predefined positions. No way to do it in C#. C# is pretty useless for computer vision applications. There are open sourced GPL libraries for it, like Bundler and PMVS
http://phototour.cs.washington.edu/bundler
Hand tracking is others quite different tasks, in some sense no less complex, though brute force structre from motion may work for hand tracking. There are several approach for precise hand tracking, some based on active shape model, or active appearance model, more simple are based on feature point tracking, which could work in your case. But even simplest approach is quite complex and can not be relied in one post. You can google, there could be open sourced library for hand tracking too.
not without any additional information.
you might be able to project the 2d image onto a modelled 3d surface. note: it is funny to say '3d plane' as a plane is typically 2d.