代码之家  ›  专栏  ›  技术社区  ›  Will

计算透视中三维对象的二维角度

  •  3
  • Will  · 技术社区  · 14 年前

    假定建筑物的表面是一个矩形,有90度角。然而,因为这是一张照片,透视图会被牵涉进来,脸的平行边缘会在地平线上会聚。

    对于这样一个矩形,如何计算与之成直角的面的边向量的二维角度?

    example http://img689.imageshack.us/img689/2060/leslievillestarbuckscor.jpg

    所以,如果你暂时忽略图片,集中注意力在线条上,那么在一张脸的轮廓里——内角等等——是否有足够的信息来知道另一边的脸的路径?公式是什么?

    example

    我们知道这两个都是矩形,也就是说每个角都是直角,它们彼此成直角。那么,如何仅利用第一个面的位置知识来确定第二个面的矢量呢?

    2 回复  |  直到 5 年前
        1
  •  0
  •   Jack    14 年前

    很容易,你应该用basic 两点透视法 规则。

    首先你需要两个消失点,一个在你的物体的左边,一个在右边。他们都会在同一条地平线上。

    alt text http://img62.imageshack.us/img62/9669/perspectiveh.png

        2
  •  0
  •   mmr    14 年前

    老实说,我要做的是 Hough Transform

    既然你知道你在看线,你也可以做一个 Radon Transform 寻找特定角度的峰值,基本上是一样的。

    Matlab有一些很好的功能来完成这类工作。