情节相机轨迹

问题描述:

给定一组SE(3) 4×4的姿态矩阵,就可以得出相机的欧几里得坐标系统的位置,如下所示:情节相机轨迹

enter image description here

其中R是3×3旋转矩阵t是平移向量根据this question

当设置姿势以顺序的方式进行处理时,例如当每一个是指照相机的姿势在一段时间的步骤中,旋转和平移组件可以如下积累:

enter image description here

enter image description here

在哪里都可以插入到所述第一方程式,以产生相机的相对位置在给定的时间步长。

我的问题是如何使用OpenCV或类似工具绘制这些点。对于以圆周运动在物体周围移动的摄像机,输出图应该是圆形的,原点位于轨迹的起始点。

一个例子如下: - enter image description here

虽然我的问题是没有明确关于绘制轴如上图所示,这将是一个奖金。

TL; DR:给定一组姿势,我们怎样才能产生这样与常用的工具,如OpenCV的,VTK,Matplotlib,MATLAB等

+0

您可以用搅拌器吗?动画通常是运动的更有用的可视化。 –

+0

@FrancescoCallari如果它可以给我所需的输出,那么它是一个选项。但是,我从来没有使用过Blender。 –

  1. 获得轴系矢量X,Y,Z上面的一个的图并且对于每个绘图点位置O

    简单地提取它们形成矩阵。请参阅Understanding 4x4 homogenous transform matrices。现在我不知道你的矩阵是否已经反转。所以如果你的矩阵代表相机坐标系(不倒置)直接提取需要的信息。如果不是先倒置矩阵然后提取。

    如果你有均匀转换矩阵,那么你可以通过利用转置操作来做伪逆运算。欲了解更多信息,请参阅full pseudo inverse matrix

  2. 渲染每个绘图点

    所以第一情节的轴系作为行:

    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库/引擎的情节。我会去GDIOpenGL但这完全取决于你所熟悉的。

    顺便说一句。提高了时间线,你可以调节色彩强度的avarenes(开始与黑暗和明亮的色彩结束,所以你看到那里的运动开始和结束...)