3

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

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

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

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

例如 http://img689.imageshack.us/img689/2060/leslievillestarbuckscor.jpg

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

例子

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

4

2 回答 2

0

这很容易,您应该使用基本的2 点透视规则。

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

替代文字 http://img62.imageshack.us/img62/9669/perspectiveh.png

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

于 2010-04-26T17:47:58.753 回答
0

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

既然你知道你在看线,你也可以做一个氡变换并寻找特定角度的峰值;它本质上是一样的。

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

于 2010-04-26T17:54:44.793 回答