问题标签 [transformation-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
815 浏览

swift - 沿 X 和 Y 轴反转旋转,同时保持 Z 不变

我有一个simd_float4x4矩阵,它是相机的变换矩阵。

在该矩阵中,我们有tx,即平移向量和ty, , , , , , ,和,即旋转矩阵。tz0x0y0z1x1y1z2x2y2z

当我在 3D 应用程序上测试旋转矩阵时,我看到沿 X 轴和 Y 轴的旋转是反转的,而沿 Z 轴的旋转是正确的。

因此,在 X 轴和 Y 轴上,真实相机顺时针旋转的任何旋转都显示为逆时针旋转。

我需要反转这些旋转。

忍受我,因为我的矩阵代数生锈了。

因此,如this SO answer的下一张图片所述,轴的旋转矩阵是

在此处输入图像描述

如果我在正确的道路上,我需要将我的旋转矩阵乘以Rxand Ry,对吗?

如果我想反转 and 中的旋转XY我的RxandRy将等于:

我可以相乘RxRy获得我必须使用的最终矩阵:

所以,我所要做的就是将我的旋转矩阵乘以R得到旋转XY反转,对吧?

不,最终结果是一样的……唯一发生的事情是相机似乎在 Y 轴上旋转了。

我正在使用此代码

我错过了什么?

0 投票
1 回答
95 浏览

matlab - 如何从具有高斯噪声的输出中找到变换矩阵?

对于下面给定的输入和输出,矩阵A可以通过伪逆或mrdivision在 MATLAB 中找到。同样,我现在想知道,如何确定A我的输出信号Y矩阵是否包含加性零均值、不相关、高斯噪声?

另外,我对未知噪声输出进行了建模,如下所示:

0 投票
3 回答
1077 浏览

python - 图像的二维旋转

尝试进行 90 度旋转时的图像。 左图为原图。我正在尝试将图像旋转到任何给定的角度。我以图像的中心为原点旋转。

但是代码没有按预期进行旋转。我附上下面的代码。

0 投票
1 回答
123 浏览

python - 为什么在尝试使用 Line3D 对象时 matplotlib 3d 动画不起作用

我有这个代码:

它在使用注释data = ax.plot(segment[0], segment[1], segment[2], color = 'b')行而不是以下两个行时起作用,(但我正在努力做到这一点,以便在顶部绘制新行时不会绘制之前的行)。

如果您按原样使用代码,动画看起来很奇怪。

我有一个理论line_2d_to_3d没有按预期工作,但我不确定。

0 投票
0 回答
176 浏览

python - 从 GPS 位置和 KITTI 原始数据集的(滚动、俯仰、偏航)计算姿势/变换矩阵(旋转和平移)

我正在尝试计算来自 KITTI 原始数据集的视频中两帧之间的相对姿势。oxts数据为每个lat, lon, alt, roll, pitch, yaw帧提供。如何将此数据转换为变换矩阵(旋转矩阵和平移向量)?

这个答案表明这是可能的,但没有给出解决方案。Python 是首选,但如果您有其他语言的解决方案,那也没关系。我可以将代码翻译成python。

样本数据:
lat, lon, alt, roll, pitch, yaw = 49.015003823272, 8.4342971002335, 116.43032836914, 0.035752, 0.00903, -2.6087069803847

PS:我正在尝试使用投影几何将一帧扭曲到另一帧。为此,我需要姿势、深度和相机矩阵。KITTI raw 提供相机矩阵。我打算从立体图像中计算深度。所以,我只剩下计算它们之间的姿势/变换矩阵了

0 投票
2 回答
72 浏览

svg - 如何使用 SVG 元素的转换矩阵来计算目标坐标?

我怀疑有某种方法可以在转换后使用元素的转换矩阵来计算其坐标,但我不知道该怎么做。

一个示例图最好地解释了这一点:


具有点 A、B 和旋转中心的圆。 A 是参考/起点。 B 与 A 点类似,但围绕旋转中心进行了旋转。 (以上所有内容都在一个包含的 SVG 中,它在各个方向上都大得多。不能假设圆的左边界框与根 SVG 的边界框匹配。) A:我知道到旋转中心的距离,如以及精确的 x 和 y 坐标。 B:我可以通过 B.getCTM() 得到一个变换矩阵,但它的 x 和 y 坐标与 A 的相同。使用 B 的变换矩阵,我需要确定变换后的 x 和 y 坐标。 换句话说,我需要能够创建一个与 B 出现在同一位置但不应用任何转换的元素。


恐怕我没有将数学路线带入编程。我可以理解转换矩阵在做什么的表面细节,但我的理解有点像一次能读一个音符的音乐,而且速度很慢;我对更高层次的曲调不是很了解,所以我对一个完整的乐句的声音也不是很了解——更不用说旋律了。

同样,我不明白转换矩阵是如何工作的。我曾尝试寻找 grok 转换矩阵的解释,但我发现的所有内容都包含更多我不理解的数学术语。我只知道它们的工作方式有点像函数,而且它们是非常灵活的工具,但仅此而已。

在所有可用的方法中SVGMatrix(据说不推荐使用DOMMatrix,但 Firefox Dev. ed. 仍在使用SVGMatrix),我不知道是否.inverse()或者.multiply()是我想要的,也不知道如何哄出一组简单的xy坐标矩阵。

笔记:

  • 我对在这里将屏幕转换为 SVG 坐标不感兴趣。
  • 我只关心 SVG(用户空间)坐标。
0 投票
0 回答
246 浏览

opencv - 来自 EstimatePoseSingleMarkers 的变换矩阵

我尝试从我的相机获取转换矩阵到 aruco 标记的中点,然后使用cv2.aruco.estimatePoseSingleMarkers函数。

在描述中它说:

返回的转换是将点从每个标记坐标系转换到相机坐标系的转换。

我将标记检测结果的角点提供给姿势估计函数,并使用 cv2.Rodriguez 将旋转向量转换为旋转矩阵。生成的平移向量已经不同于从相机坐标到标记坐标的测量平移,据我所知,它应该是相同的。

不管推断如何,我初始化一个 4x4 变换矩阵,并将旋转矩阵和来自姿态估计的平移向量放入 4x4 矩阵,我假设它给出了从标记坐标系到相机坐标系的变换,但是当我更正变换时从环境的另一点来看,它表明变换矩阵不正确。

我确信MARKER_SIZE。

谁能告诉我我做错了什么,并解释通过 获取从相机坐标到标记坐标的变换矩阵的步骤cv2.aruco.estimatePoseSingleMarkers

0 投票
0 回答
120 浏览

python - 两组相似 3D 点的对齐/配准,无序

我有两组无序的 3D 点(A 和 B),我想对齐它们。如果匹配正确,这两组非常相似:除了一个点移动剧烈外,其他点基本处于同一位置。我想要得到的是允许我将 A 匹配到 B 的转换矩阵。

我研究了CPD(相干点漂移)算法并尝试使用pycpd python 模块编写解决方案,但它似乎没有按预期工作。当使用两个相同的点集进行测试时,只有一个点的一个坐标(在示例中B[0][1])发生了变化,这两个点集没有正确对齐......

这是我的输入代码:

这是运行严格注册后的结果点

知道我可能做错了什么吗?你能为我指出正确的方向吗?

谢谢

0 投票
0 回答
61 浏览

java - 旋转 Y 轴以翻转纹理朝向反转 X 轴

我想沿 Y 轴旋转我的精灵(将旋转应用于变换矩阵)以翻转精灵的方向。

但不知何故,它似​​乎也影响了我的输入系统......
按右变成左......而且似乎精灵不再呈现在实体真实位置..“真实位置”由输入系统和紧随其后的是相机,但精灵的方向相反,就好像输入被反转了一样。(输入改变与按下的键相对应的速度,并且变换分量在每次更新时由该向量平移)

这是我用来获取矩阵的代码:

我已经检查并重新检查了我的旋转矩阵,但他们在这里过于自信:

我按这个顺序在我的着色器中使用 mvp 矩阵projection_matrix * view_matrix * transformation_matrix * vec4(attribute_position, 1.0)

0 投票
2 回答
113 浏览

python - 如何使用python中的平移矩阵将小图像的特定坐标放置到大图像的特定坐标

我正在学习OpenCV,我正在寻找python中的代码,它获取小图像的输入坐标并将其映射到大图像的坐标,以便将小图像插入到大图像中,并且可以像这样进行变换旋转。我想使用翻译矩阵作为输入来做到这一点。例如,如果矩阵是:

这意味着小图像中 (75, 120) 处的像素应映射到大图像中 (210, 320) 处的像素,小图像中 (30, 90) 处的像素应映射到大图像中 (190, 305) 处的像素...我搜索了很多,但我没有得到我的问题的正确答案。我怎么解决这个问题?