zoukankan      html  css  js  c++  java
  • 三维立体电视图像生成方法

    三维立体电视越来越受到人们的重视,不少商家也推出了一些相关产品。那这些究竟是怎么做出来的呢?作者就接触过的知识点,在这里向大家浅薄的介绍一二。

    国内外研究现状

    三维立体电视,最好的方式是用两台摄像机按照一定角度,同时拍摄当前的场景,然后将这两个同一时刻拍摄的图像整合叠加,就会形成一个肉眼看起来有点错位模糊的图像,我们称这两张图像分别为左图像和右图像。如果配上特制眼镜或者电视屏本身就有相应设计,我们就可以看到立体电视图像了。但是,实际中往往用两台并按一定角度拍摄,有很多困难。因此,实际中多是只有一个图像,想办法来生成另一个对应的图像。

    国内关于这方面的文献很少,而且也是很不精确的解法。比如,假设绝大部分的场景图像,都是图像上半部分是远景,下半部分是近景,然后按照从上到下,逐步给图像一个向左或向右的递增位移,但是并不是所有场景都符合这样的情况。另外,还有根据心里和生理因素,给图像加入随即偏移因子的方法,同样也精度不理想。

    二 立体图像生成方法

    1 图像分割

    目前,用一张图像生成另一张图像,比较精确的方法是,用图像分割的方法,把图像中的各个区域取出来,然后再根据图像的深度,对每个部分进行相应位移,这样的图像效果就合情合理了。

    图像分割也有很多方法,作者采用的是基于粗糙集理论的原理,具体实现过程在此不再详述,如有感兴趣的可以留言讨论。直接上图吧:

                     

         

                     Fig1 原始图像                        Fig2 加了深度的分割后图像

    2 深度图

    分割后的图像,并不能直接用来做左图像或右图像。我们还需要根据图像类型,对它每个分割的块赋予一个深度值。一般的,我们可以通过对图像做主直线检测,来判断图像的深度方式。比如第一排图可以检测出一条横线(中间那条路),那么判断它是属于上面远景,下方为近景的类型。这个完全由直线方向来定,如果无法判断时,就默认图像属于上方远景,下方近景类型。

    3 分割块的位移

    位移公式:

    xc is the horizontal coordinate of the intermediate view. Z is depth value of current pixel, f is camera focal length and t x is eye distance.
    4 立体图像生成
    调查发现,大约70%的人属于右眼灵敏,20%的属于左眼灵敏,10%的人左右眼都差不多。因此,我们可以将原始图像当做右图像,我们通过分割和深度来生成左图像。

    将图三和图四合成,就生成了对应的立体图:

                             图5 立体图

    其他例子:

         

  • 相关阅读:
    golang垃圾回收和SetFinalizer
    读《我编程,我快乐--程序员职业规划之道》
    golang cache--go-cache
    golang web framework--Martini
    golang http proxy反向代理
    php 设计模式之简单工厂模式
    php 设计模式之责任链模式
    什么是反向索引
    ip地址二进制转十进制
    架构师之路
  • 原文地址:https://www.cnblogs.com/ImageVision/p/2418602.html
Copyright © 2011-2022 走看看