Math 在透视图中计算三维对象的二维角度
想象一张照片,上面画着一座建筑物的正面 假定建筑物的正面是一个矩形,有90度角。然而,因为这是一张照片,所以需要透视,脸部的平行边缘将在地平线上会聚 对于这样一个矩形,如何计算与它成直角的面边缘向量在2D中的角度 在下图中,蓝色是照片上标记的脸,我想知道如何计算另一张脸红线的2D向量: 因此,如果你暂时忽略图片,专注于线条,那么在一个面轮廓中是否有足够的信息——内角等等——来知道角落另一侧面的路径?公式是什么Math 在透视图中计算三维对象的二维角度,math,graphics,geometry,perspective,Math,Graphics,Geometry,Perspective,想象一张照片,上面画着一座建筑物的正面 假定建筑物的正面是一个矩形,有90度角。然而,因为这是一张照片,所以需要透视,脸部的平行边缘将在地平线上会聚 对于这样一个矩形,如何计算与它成直角的面边缘向量在2D中的角度 在下图中,蓝色是照片上标记的脸,我想知道如何计算另一张脸红线的2D向量: 因此,如果你暂时忽略图片,专注于线条,那么在一个面轮廓中是否有足够的信息——内角等等——来知道角落另一侧面的路径?公式是什么 我们知道两者都是矩形——也就是说每个角都是直角——并且它们彼此成直角。那么,如何
我们知道两者都是矩形——也就是说每个角都是直角——并且它们彼此成直角。那么,如何仅使用第一个面的位置知识来确定第二个面的矢量呢?这很简单,您应该使用基本的2点透视规则 首先,你需要两个消失点,一个在物体的左边,一个在物体的右边。他们都会呆在同一条地平线上
在放置了地平线(选择视线高度)和消失点(点的位置将改变视野)之后,您可以轻松地计算出直线的走向(当然,您需要能够计算出穿过两个点的直线:我认为您可以做到)老实说,我要做的是在图像上做一个标记,并确定一种从图像中识别红线的方法。要找到红线,我会在变换中找到任何与蓝色线接触的线。变换的好处是可以免费获得角度信息 既然你知道你在看直线,你也可以做一个实验,在特定的角度寻找峰值;本质上是一样的
Matlab在这类工作中有一些很好的功能。你已经找到了红色的边吗?知道蓝色的面是一个矩形,你可能有足够的信息从蓝色人脸->蓝色3D对象+相机->红色3D对象+相机->红线向后工作。Hough是一种有趣的方法,我很熟悉,但我正在寻找一种数学方法来告诉我应该信任哪些Hough线。角交点是一个好的信任度量吗?找到蓝色标记区域的角点应该是可行的,特别是如果标记保证有四个这样的角点。然后,可以延伸通过该角点的线可以是候选线,并且可能选择最近的一条作为答案;这意味着我必须有投影用的forumla。。。