【问题标题】:Calculating 2D angles for 3D objects in perspective在透视图中计算 3D 对象的 2D 角度
【发布时间】:2011-02-12 12:29:03
【问题描述】:

想象一张照片,标出建筑物的正面。

假设建筑物的正面是一个矩形,有 90 度角。但是,因为它是一张照片,所以会涉及透视,并且脸部的平行边缘会在地平线上会聚。

对于这样一个矩形,如何计算与它成直角的面的边的向量在 2D 中的角度?

在下图中,蓝色是照片上标记的那张脸,我想知道如何计算另一张脸红线的二维向量:

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

因此,如果您暂时忽略图片,并专注于线条,其中一个面部轮廓(内角等)是否有足够的信息来了解角落另一侧的面部路径?公式是什么?

我们知道两者都是矩形 - 也就是说每个角都是直角 - 并且它们彼此成直角。那么如何仅使用第一张脸的位置信息来确定第二张脸的向量呢?

【问题讨论】:

  • 你已经找到红边了吗?
  • 知道蓝脸是一个矩形,你可能有足够的信息可以从蓝脸 -> 蓝色 3-d 对象 + 相机 -> 红色 3-d 对象 + 相机 - > 红线。

标签: math graphics geometry perspective


【解决方案1】:

老实说,我要做的是在图像上添加Hough Transform 并确定一种从图像中识别红线的方法。为了找到红线,我会在变换中找到任何与你的蓝色线相接触的线。变换的好处是您可以免费获得角度信息。

既然您知道您正在查看线条,您还可以执行Radon Transform 并查找特定角度的峰值;它本质上是一样的。

Matlab 为这类工作提供了一些不错的功能。

【讨论】:

  • 霍夫是我熟悉的一种有趣的方法,但我正在寻找一种数学方法来告诉我哪些霍夫线值得信任..
  • 拐角交叉点是一个好的信任指标吗?找到蓝色标记区域的角落应该是可行的,特别是如果保证标记有四个这样的角落。然后可以延伸通过该角点的线可能是候选线,并且可能选择最接近的线作为答案。
  • 我可以通过寻找与候选形状的透视投影相匹配的候选线来剔除噪声点的想法;这意味着我必须有投影的论坛...
【解决方案2】:

这很简单,你应该使用基本的2点透视规则。

首先,您需要 2 个消失点,一个在对象的左侧,一个在对象的右侧。它们都将保持在同一水平线上。

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

放置地平线(选择视线高度)和消失点(点的位置将改变视野)后,您可以轻松计算线的位置(当然,您需要能够计算跨越两点的线:我认为你可以做到)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多