当前位置: 首页 > 知识库问答 >
问题:

从一组坐标计算变换矩阵(使用OpenCV)

尤博达
2023-03-14

我有一个小立方体,它的表面有n个(你可以假设n=4)个可分辨的点。这些点被编号(1-N),并形成一个坐标空间,其中点#1是原点。

现在我用一个跟踪相机来获取这些点的坐标,相对于相机的坐标空间。这意味着我现在有n个向量p_i从相机的原点指向立方体的表面。

有了这些信息,我试图计算仿射变换矩阵(旋转+平移),它代表了这两个坐标空间之间的变换。平移部分是相当琐碎的,但我正在纠结于旋转矩阵的计算。

在OpenCV中是否有任何内置功能可以帮助我解决这个问题?

共有1个答案

宇文飞翮
2023-03-14

听起来CVGetPerspectiveTransform就是您要查找的内容;cvfindhomograpy也可能有帮助。

 类似资料:
  • 我正在创建3D/2D图形引擎,我写了一些花哨的Vector2、Vector3类、窗口包装器和OpenGL上下文创建框架,有一段时间我在想如何切换坐标系轴。在OpenGL中,默认情况是这样的(据我所知): 我真的,真的不想有那样的coords,这只会让我无法阅读coords。所以我想到了UE4风格的坐标: 我读过关于“调整”视角的书,但只有倒转轴,没有切换它们。 我的第二个问题是我在哪里可以学习一些

  • 基本上,我的代码是这样的: 我有一个名为cam的正交相机和一个名为batch的sprite批处理。 我想要的是要在 InputProcessor 类中创建一个矩形,该矩形与使用子画面批处理绘制的纹理区域具有相同的 x、y、宽度和高度,以便我可以触摸检测该纹理。 但是当我用“Rock.getTextureRegion.y”或“x”作为我的Bounds矩形的参数时,边界就大不相同了。 是因为那个输入类

  • 我有一个矩阵。只有唯一的颜色以不同的权重重复它们自己。从它们中,我得选择一半,另一半必须用从第一个中最接近的元素替换。 我想到了在图像中循环,并搜索最近的颜色为当前的一个。找到后,我把一个换成另一个。 但我有3个循环、、。前两个I循环通过RGB矩阵,第三个用于循环到包含最终颜色的矩阵。这需要一些时间来计算。 可以做些什么来加快它的速度? 循环如下所示: 表示选择为最终颜色的半色。 我可以考虑一些小

  • 变换矩阵 之前三节所说的坐标变换的三种方式——平移translate(),缩放scale(),以及旋转rotate()都可以通过transform()做到。 在介绍矩阵变换transform()前,我们来说一说什么是变换矩阵。 以上是Canvas中transform()方法所对应的变换矩阵。而此方法正是传入图中所示的六个参数,具体为context.transform(a,b,c,d,e,f)。 各

  • 我有一个3D坐标系,我用3D摄像机跟踪外部的三个点。 所以我在(x,y,z)空间中有三个点。 下一帧我再次跟踪这三个点。 我使用前三个点作为初始情况。现在我需要起草一个转换矩阵,给我的平移,旋转和缩放的第二个3点,与初始位置比较。 现在我真的不知道怎么做。 有没有一种方法可以直接生成变换矩阵,或者我必须先生成平移、旋转和缩放矩阵,然后再生成这三个矩阵的变换矩阵? 谢谢!j

  • 问题内容: 我想使用scipy计算矩阵的数学等级。最明显的函数是计算数组的维数(即标量的维数为0,矢量为1,矩阵为2等)。我知道该模块具有此功能,但是我想知道这样的基本操作是否内置在某个矩阵类中。 这是一个明确的示例: 这给出了维度,我正在寻找的答案。 问题答案: Numpy提供: