所以问题是我有一个矩形的3D投影,我想变成2D。那是我有一张放在桌子上的一张纸的照片,我想转换成该张纸的二维视图。所以我需要的是通过恢复所有3D /投影转换并从顶部获得平面视图来获得未失真的2D图像。我碰巧找到了关于这个问题的一些方向,但他们并没有建议如何实现这一目标的直接指示。逐步指导需要完成的工作将非常有帮助。或者,也可以指向资源的链接,将其分解为一些细节。投影几何:我如何将3D矩形的投影变成2D视图
回答
您需要更多信息才能做到这一点。 例如纸张的大小。 假设你有。
您需要了解的内容称为“单应性”。 这基本上是以下情况:
你有相同的平面(你的纸),你从两个不同的相机拍摄它的照片(说一个是你有的实际图像,另一个是一个你想获得的 - 相机正好在纸张上方的那个)。
存在从一个图像的2D空间到另一个图像的2D空间(单应性)的转换,您的目标是找到它。一旦找到它,只需将其应用于图像即可获得顶视图。
为了找到单应性矩阵,您需要(至少)4个点,它们的坐标在BOTH图像中是已知的。
这些点的明显选择当然是纸张的顶点。 在你有图像的时候,你可以手工找到这些图像。 在目标图像中,您可以选择使图纸居中的图像(0,0),了解图像的尺寸。
有大量关于4点在线单应矩阵的信息。 This是我来到第一只有一个,所以必须有更好的资源在那里:)
注意,通常这些计算都是在2D射影空间完成的,因为这是一个射影变换。
谢谢,非常丰富。 –
如果您对纸张的形状一无所知 - 如果纸张可以是任意的四边形,则Petar的答案是正确的。但由于论文是一个矩形,所以这限制了足够的问题来确定单应性而不需要知道矩形的长宽比。
有关如何操作的详细信息,请参阅Microsoft Research's "Whiteboard It!" paper的第4部分。
如果您对顶点进行了正确的3D - > 2D变换,它应该可以正常工作。 起点是研究达芬奇的三维点 - >二维点投影几何模型。
- 1. 如何变换一个投影的3D矩形成2D轴线对齐矩形
- 2. 2D与平行投影3D
- 3. 将2D图像变换为3D平面上的3D投影
- 4. 投影和视图矩阵
- 5. 投影仪校准的几何视图
- 6. 将3D点投影到2D点
- 7. 将2D点投影到3D Plucker线
- 8. 3D投影如何工作?
- 9. 在java中的3d图形。投影
- 10. 4D到3D透视投影
- 11. 矩阵乘法 - 视图/投影,世界/投影等
- 12. 2D投影的3D点位置
- 13. Paraview:查看3D对象的2D投影
- 14. Matlab:3D功能的2D投影
- 15. 如何使用透视投影矩阵?
- 16. 投影矩阵
- 17. 投影矩阵
- 18. 使用MATLAB投影矩阵反投影
- 19. Three.js投影矩阵不投影
- 20. 将点云投影到2D
- 21. 3D投影映射
- 22. 3D投影信息
- 23. 在Python中创建3D矩阵的2D投影
- 24. WP7透视变换(3D矩阵vs平面投影)
- 25. 投影视图矩阵,opengl es。 iOS
- 26. OpenGL投影,视图和世界矩阵
- 27. 使用透视相机矩阵将3D点投影到2D屏幕空间
- 28. OpenGL中的投影矩阵真的是“投影矩阵”吗?
- 29. OpenGL投影矩阵
- 30. 透视投影
不知道,如果我理解你的权利,但可能是你正在寻找ProjMatrix http://www.songho.ca/opengl/gl_projectionmatrix.html – JAre