我有一个3D四边形(蓝色)的2D投影(绿色)图像,就像房间的照片,3D空间中的原始四边形就是房间的地板。我知道ABCD点的2D XY位置(由用户提供)。
http://i41.tinypic.com/rr59xt.png
知道3D空间中四边形的宽度,高度和内角我希望得到它创建此投影的原始相机 - 对象插入。因此,据我所知,这是AR工具包在2D图像上显示3D标记时解决的确切问题,可以通过共面POSIT算法求解。我正在使用AForge.NET Framework(http://www.aforgenet.com/articles/posit/)中的代码,它为我提供了旋转矩阵和平移向量。
我的第一个困惑:我在世界坐标系中得到旋转矩阵和平移向量,其中(0,0,0)为原点(即我的相机位于0,0,0位置旋转0,0,0)?
我的第二个困惑:我在XY平面上放置了与原始尺寸相同的四边形(第一张图像上的蓝色),如何转换由CoPOSIT algorigh生成的旋转矩阵和平移向量为了获得相机的位置和旋转,使这个四边形屏幕与原始2D投影(第一张图像上的绿色矩形)相匹配。就像最后一张蓝色半透明3D四边形与地板相似的图像一样。
http://i44.tinypic.com/zl5cmu.png http://i44.tinypic.com/2vru6n4.png
答案 0 :(得分:1)
From the research paper,第3页(复制/粘贴无法正常工作,IDK原因):
我们的目标是计算旋转矩阵和平移向量 对象对象的旋转矩阵R是矩阵 行是摄像机的单位矢量i j k的坐标 在物体坐标系中表示的坐标系Mu Mv
Mw 确实旋转矩阵的目的是改变 矢量的对象坐标,例如MMi到坐标中的坐标 相机系统中的点积MMi i b在第一行之间 矩阵和矢量MMi正确地提供了投影 这个矢量在摄像机坐标系的单位矢量i上 MMi的坐标Xi X只要坐标为MMi和 这里,行向量i的表示在相同的坐标系中 对象的坐标系
相机似乎以(0, 0, 0)
为中心,正沿着y
轴看。
如果我错了,请纠正我,但是你想对摄像机应用逆操作(将摄像机移动-translation vector
并按inverse of rotation vector
旋转)。