Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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 如何计算:将4个二维中点坐标转换为三维矩形四边形_Math_Arduino_3d_2d_Computational Geometry - Fatal编程技术网

Math 如何计算:将4个二维中点坐标转换为三维矩形四边形

Math 如何计算:将4个二维中点坐标转换为三维矩形四边形,math,arduino,3d,2d,computational-geometry,Math,Arduino,3d,2d,Computational Geometry,我用Arduino红外相机拍摄了一个完美矩形的4个2D中点(左中、右中、上中、下中)(我知道它的W/H比)。您知道如何计算此四边形的三维坐标,和/或计算此四边形矩形空间中的任何其他二维点三维坐标吗 我需要这个来尝试找到空间中第五个点坐标相对于这个3D四边形空间的位置(我想有点像光线投射)。 我已经知道如何获得每个中点之间的距离和角度,以及矩形的中心。 我还猜测,最好的做法是将Z轴原点放在四边形中心点或相机中心,然后找到与之相关的其他点Z。 但这就是我被卡住的地方,我不知道如何找到其他坐标,如何处

我用Arduino红外相机拍摄了一个完美矩形的4个2D中点(左中、右中、上中、下中)(我知道它的W/H比)。您知道如何计算此四边形的三维坐标,和/或计算此四边形矩形空间中的任何其他二维点三维坐标吗

我需要这个来尝试找到空间中第五个点坐标相对于这个3D四边形空间的位置(我想有点像光线投射)。 我已经知道如何获得每个中点之间的距离和角度,以及矩形的中心。 我还猜测,最好的做法是将Z轴原点放在四边形中心点或相机中心,然后找到与之相关的其他点Z。
但这就是我被卡住的地方,我不知道如何找到其他坐标,如何处理缺少Z和透视的问题。

我想2D坐标在图像中,3D在“真实世界”中。要做到这一点,通常你需要有你相机的投影矩阵(这个矩阵是你校准相机时得到的)。你可以使用针孔模型。谢谢你的回答,实际上2D是相机拍摄的图像,3D是真实世界中的图像。凸轮只给我4个点,x和y坐标,没有矩阵。我确实研究了投影矩阵的概念,但我发现了如何从三维坐标对象获取二维点,而不是相反。我想,由于我瞄准的对象是完美的矩形,我可以通过三角测量找到3D坐标的估计值。但这似乎很难实现,可悲的是:/当从真实相机进行此类投影时,最好使用3D到2D投影的投影矩阵,因为它可以考虑镜头失真等。反向操作非常困难,因为您需要假设点离相机有多远。从2D到3D的转换最多只能提供一条直线。你可以试着用不变的交比来找出一些东西:在投影库中是不变的,这是一个很好的信息。对于我的设置,我忘了说,但我知道摄像机的视角,它水平33度,垂直23度。知道了矩形的实际大小和纵横比,我也许能够从矩形的对角线和垂直方向,以及每边的长度,计算出相机的距离和方向,但我不知道如何计算:(另外,我们可以安全地假设矩形中心将在相机的中心。