Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
3d 投影几何:如何将三维矩形的投影转换为二维视图_3d_Geometry_2d_Projection_Projective Geometry - Fatal编程技术网

3d 投影几何:如何将三维矩形的投影转换为二维视图

3d 投影几何:如何将三维矩形的投影转换为二维视图,3d,geometry,2d,projection,projective-geometry,3d,Geometry,2d,Projection,Projective Geometry,所以问题是,我有一个矩形的3D投影,我想把它变成2D。也就是说,我有一张放在桌子上的一张纸的照片,我想把它转换成那张纸的二维视图。所以我需要的是通过还原所有的3D/投影变换并从顶部获得板材的平面视图来获得未失真的2D图像。我碰巧在这个问题上找到了一些方向,但他们并没有就如何实现这一目标提供即时指导。对于需要做的事情,得到一个循序渐进的指导是非常有帮助的。或者,一个指向资源的链接,将其分解为一些小细节。要做到这一点,您需要更多信息。 例如,纸张的大小。 假设你拥有它 你需要了解的是“单应性”。 基

所以问题是,我有一个矩形的3D投影,我想把它变成2D。也就是说,我有一张放在桌子上的一张纸的照片,我想把它转换成那张纸的二维视图。所以我需要的是通过还原所有的3D/投影变换并从顶部获得板材的平面视图来获得未失真的2D图像。我碰巧在这个问题上找到了一些方向,但他们并没有就如何实现这一目标提供即时指导。对于需要做的事情,得到一个循序渐进的指导是非常有帮助的。或者,一个指向资源的链接,将其分解为一些小细节。

要做到这一点,您需要更多信息。 例如,纸张的大小。 假设你拥有它

你需要了解的是“单应性”。 基本情况如下:

你有一个相同的平面(你的一张纸),你用两个不同的相机(比如一个是你拥有的实际图像,另一个是你想要获得的图像——相机正好在这张纸上面的那张)

存在从一个图像的二维空间到另一个图像的二维空间的变换(单应性),您的目标是找到它。一旦你找到它,你只需将它应用到你的图像,以获得俯视图

为了找到单应矩阵,您需要(至少)4个点,在两幅图像中您都知道它们的坐标

当然,这些点的一个明显选择是纸张的顶点。 在您拥有的图像中,您可以手动定位这些。 在目标图像中,可以拾取这些图像,以便图纸位于其中心(0,0),同时了解其尺寸

在线上有4点关于单应矩阵的大量信息。 这只是我遇到的第一个,所以一定有更好的来源:)


请注意,这些计算通常是在二维投影空间中进行的,因为这是一种投影变换。

如果您对纸张的形状一无所知,如果纸张可以是任意四边形,Petar的答案将是正确的。但由于纸张是矩形的,这就限制了问题的解决,从而可以在不需要知道矩形纵横比的情况下确定单应性

有关如何执行此操作的详细信息,请参见的第4节。

如果对顶点执行正确的3D-->2D变换,则应可以正常工作。
起点是研究达芬奇的3D点-->2D点投影几何模型。

如果我理解正确,就不是舒尔,但可能是您正在寻找ProjMatrix