从2D图像创建3D效果

时间:2011-01-31 01:48:01

标签: image-processing 3d imagemagick 2d

我有一个随机的2D图像。我希望能够以3D形式呈现图像。这不一定非常详细,即使图像被任意分成层,如儿童书中的弹出式剪纸。

目标是直接观看时给定的图像看起来很正常,但如果观看者向左,向右,向上,向下移动/倾斜,则会产生3d效果。

这与此问题类似但不完全相同: How to create 3D streoscopic images using MATLAB with image tool?

这是完全过度杀戮: http://make3d.cs.cornell.edu/

这可能是在正确的轨道上: http://www.imagemagick.org/Usage/distorts/#perspective

我理想的实现是一个自动化的PHP脚本,ImageMagick采用图像并吐出结果(按优先顺序):

  1. 代表每一层的图像,来自 最接近最深的 孩子弹出书籍层比喻)
  2. 表示所述视图的5个图像 (直接,左,右,上,下)
  3. 这已经完成了(上述理想实现中的任何一个),或者有人知道如何做到这一点或部分吗?

1 个答案:

答案 0 :(得分:1)

就您的问题的第一部分而言,听起来您的理想实施是http://make3d.cs.cornell.edu/,除了:

  • 您希望它更简单(从一组固定的角度返回图像,而不是演练)
  • 你想用imagemagick和PHP

我认为最后的限制是不现实的,因为this kind of problem背后有相当数量的数学和计算机视觉。 Imagemagick将帮助您处理仿射变换等低级图像处理任务,但它并不能真正提供3D图像重建所需的更高级别的计算机视觉功能。

所以我的建议是尝试以某种方式解决这个限制。如果您使用更合适的工具(例如C ++和OpenCV,或者像Make3D那样的Matlab)实现该方法,那么您可以将其包装在CGI应用程序中,以便您的PHP脚本可以访问它。 Cornell(Make3D的作者)有一段相似的事情发生了一段时间,但看起来他们不再这样做了。

对于你问题的第二部分,你想要做的事情背后的理论已经得到了很好的研究。有关深度估算文件的列表,请参阅hereHere就是源头的样子。