mpe*_*kov 11
要么我误解你的问题(人们已经指出它不清楚),要么你误解了3D视觉的工作方式.您没有"使用3D玻璃看到2D图像".通过分别向左眼和右眼提供两个不同的图像(左图像和右图像)来实现3D视觉.从根本上讲,MATLAB与它没有任何关系.
因此,在没有一个容易理解或连贯的问题,我能做的最好的是假设你想要的东西,像这样:你是一个单一的2D图像,但你还是想"看到成3D图像格式".在这种情况下,您需要以某种方式将单个图像拆分为两个新图像:
这不是微不足道的.通常,您首先推断 2D图像中每个像素的深度.由于您正在"猜测"深度信息,因此这两个新图像将不是3D场景的完美表示.
接下来,使用该深度信息将图像分成多个图层.它基本上看起来像是儿童书中的弹出式剪纸:

您可以提出的图层越多,深度估计越准确,您的3D表示就越真实.
最后,您将分层表示从两个不同的位置投射回2D,一个用于左眼,一个用于右眼.这为您提供了所需的两种不同图像.
编辑
您链接的第二个视频描述了通常所说的立体图像的简化创建.它需要3D红蓝眼镜 - 这些不是他们现在在大多数3D影院中使用的偏振眼镜.我说简化的原因是它不区分前景和背景.
为了获得最佳效果,您需要将前景与背景分开,并将方法仅应用于前景.这是因为通常背景具有无限深度,并且在从单声道视觉到立体视觉时不会改变.在钢琴的情况下,一切都或多或少是前景,所以这种方法是有效的.
视频描述的算法是:
im1然后im2.它们完全相同im1设置为零.这将创建红色图像im2为零.这将创建青色图像.im1位于左侧并im2位于右侧.您需要正确获取此订单,因为3D红蓝眼镜左侧为红色,右侧为青色.这是我写的一些Python/OpenCV代码:
import cv
SHIFT=8
if __name__ == '__main__':
    import sys
    _, fname = sys.argv
    im  = cv.LoadImage(fname)
    size = cv.GetSize(im)
    width, height = size
    left  = cv.CreateImage(size, im.depth, im.nChannels)
    right = cv.CreateImage(size, im.depth, im.nChannels)
    anaglyph = cv.CreateImage((width - SHIFT, height), im.depth, im.nChannels)
    #
    # This would be easier if we had COI support for cv.Set, but it doesn't
    # work that way.
    # OpenCV uses BGR order (even if input image is greyscale):
    # http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html
    # red goes on the left, cyan on the right:
    # http://en.wikipedia.org/wiki/Anaglyph_image
    #
    b = cv.CreateImage(size, im.depth, 1)
    g = cv.CreateImage(size, im.depth, 1)
    r = cv.CreateImage(size, im.depth, 1)
    cv.Split(im, b, g, r, None)
    zeros = cv.CreateImage(size, r.depth, 1)
    cv.Merge(zeros, zeros, r, None, left)
    cv.Merge(b, g, zeros, None, right)
    #
    # cvRect is ( x, y, width, height ) and it MUST be a tuple, not a list
    # 
    cv.SetImageROI(left,  ( SHIFT, 0, width - SHIFT, height ))
    cv.SetImageROI(right, ( 0,     0, width - SHIFT, height ))
    cv.Add(left, right, anaglyph, None)
    cv.SaveImage('anaglyph.jpeg', anaglyph)
这是与视频中使用的图像类似的图像:

这是输出:

不幸的是,我没有3D红蓝眼镜验证这是否有效.但它似乎应该,至少在理论上.如果我犯了错误,也许有人可以纠正我.