How to convert a 2D image to 3D in iphone app [clo

2019-09-29 17:44发布

问题:

Input: 2D image

Output: 3D image

Platform: IOS

I need to convert a 2D image into 3D in my ios application.How to do this in my ios application? What are the frameworks I need to use? Will OpenGL-es helps in this? Or anyother packages are there in IOS to do this? What are the steps I need to follow to make a 2D image to 3D?

Project Description: I need to do a application similar to this "Morfo" or "Photo Speak". In these applications what I belive is they are converting a 2D image to 3D image and that is the reason I posted here for some start up and help.

回答1:

I strongly recommend that you take a look at the following book

  • "Multiple View Geometry in Computer Vision" by Richard Hartley and Andrew Zisserman

A search for the term "single view 3d reconstruction" yielded this website. Maybe

Reconstructing a 3D image from a 2D image is extremely challenging and often not possible, unless you can apply some extra knowledge about the scenery, e.g. the Manhattan World Assumption, which assumes that most of the world is built on a Cartesian grid.

You can get better results if you have more than one view of the same scene (preferably a static scene that did not change during the creation of the different views).

I suggest that you do some searching about "single/multiple view 3d reconstruction" and come back with a more focused question :-)

Other suggested search terms are:

  • Monocular depth estimation
  • 3d computer vision
  • shape from shading
  • face animation (added after the question was updated)

Now more specifically to your questions:

  1. I have no idea how you are going to do this in your iOS application, but I do not want to discourage you, just know that it is very hard.
  2. I do not know of any frameworks that solve this problem out of the box for you. There are many computer vision frameworks out there. OpenCV is a very popular one and it has a version for iOS.
  3. OpenGL-ES is for displaying 3D scenes on an "embedded system" (ES)
  4. You will probably have to implement most of the algorithms yourself.
  5. In order to turn a 2D image into 3D image you need to recover the depth information, which is non-trivial.