Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 在透视图中计算三维对象的二维角度_Math_Graphics_Geometry_Perspective - Fatal编程技术网

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

Math 在透视图中计算三维对象的二维角度,math,graphics,geometry,perspective,Math,Graphics,Geometry,Perspective,想象一张照片,上面画着一座建筑物的正面 假定建筑物的正面是一个矩形,有90度角。然而,因为这是一张照片,所以需要透视,脸部的平行边缘将在地平线上会聚 对于这样一个矩形,如何计算与它成直角的面边缘向量在2D中的角度 在下图中,蓝色是照片上标记的脸,我想知道如何计算另一张脸红线的2D向量: 因此,如果你暂时忽略图片,专注于线条,那么在一个面轮廓中是否有足够的信息——内角等等——来知道角落另一侧面的路径?公式是什么 我们知道两者都是矩形——也就是说每个角都是直角——并且它们彼此成直角。那么,如何

想象一张照片,上面画着一座建筑物的正面

假定建筑物的正面是一个矩形,有90度角。然而,因为这是一张照片,所以需要透视,脸部的平行边缘将在地平线上会聚

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

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

因此,如果你暂时忽略图片,专注于线条,那么在一个面轮廓中是否有足够的信息——内角等等——来知道角落另一侧面的路径?公式是什么


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

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

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


在放置了地平线(选择视线高度)和消失点(点的位置将改变视野)之后,您可以轻松地计算出直线的走向(当然,您需要能够计算出穿过两个点的直线:我认为您可以做到)

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

既然你知道你在看直线,你也可以做一个实验,在特定的角度寻找峰值;本质上是一样的


Matlab在这类工作中有一些很好的功能。

你已经找到了红色的边吗?知道蓝色的面是一个矩形,你可能有足够的信息从蓝色人脸->蓝色3D对象+相机->红色3D对象+相机->红线向后工作。Hough是一种有趣的方法,我很熟悉,但我正在寻找一种数学方法来告诉我应该信任哪些Hough线。角交点是一个好的信任度量吗?找到蓝色标记区域的角点应该是可行的,特别是如果标记保证有四个这样的角点。然后,可以延伸通过该角点的线可以是候选线,并且可能选择最近的一条作为答案;这意味着我必须有投影用的forumla。。。