情节相机轨迹
问题描述:
给定一组 4×4的姿态矩阵,就可以得出相机的欧几里得坐标系统的位置,如下所示:情节相机轨迹
其中R
是3×3旋转矩阵t
是平移向量根据this question。
当设置姿势以顺序的方式进行处理时,例如当每一个是指照相机的姿势在一段时间的步骤中,旋转和平移组件可以如下积累:
和
在哪里都可以插入到所述第一方程式,以产生相机的相对位置在给定的时间步长。
我的问题是如何使用OpenCV或类似工具绘制这些点。对于以圆周运动在物体周围移动的摄像机,输出图应该是圆形的,原点位于轨迹的起始点。
虽然我的问题是没有明确关于绘制轴如上图所示,这将是一个奖金。
TL; DR:给定一组姿势,我们怎样才能产生这样与常用的工具,如OpenCV的,VTK,Matplotlib,MATLAB等
答
-
获得轴系矢量
X,Y,Z
上面的一个的图并且对于每个绘图点位置O
简单地提取它们形成矩阵。请参阅Understanding 4x4 homogenous transform matrices。现在我不知道你的矩阵是否已经反转。所以如果你的矩阵代表相机坐标系(不倒置)直接提取需要的信息。如果不是先倒置矩阵然后提取。
如果你有均匀转换矩阵,那么你可以通过利用转置操作来做伪逆运算。欲了解更多信息,请参阅full pseudo inverse matrix。
-
渲染每个绘图点
所以第一情节的轴系作为行:
red_line(O,O+a*X); green_line(O,O+a*Y); blue_line(O,O+a*Z);
其中
a
是轴线的大小。并且在该图之后为该位置绘制一个点black_circle(O,r);
其中
r
是某个半径。您可以使用任何gfx库/引擎的情节。我会去GDI或OpenGL但这完全取决于你所熟悉的。顺便说一句。提高了时间线,你可以调节色彩强度的avarenes(开始与黑暗和明亮的色彩结束,所以你看到那里的运动开始和结束...)
您可以用搅拌器吗?动画通常是运动的更有用的可视化。 –
@FrancescoCallari如果它可以给我所需的输出,那么它是一个选项。但是,我从来没有使用过Blender。 –