问题标签 [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.
swift - 沿 X 和 Y 轴反转旋转,同时保持 Z 不变
我有一个simd_float4x4
矩阵,它是相机的变换矩阵。
在该矩阵中,我们有tx
,即平移向量和ty
, , , , , , ,和,即旋转矩阵。tz
0x
0y
0z
1x
1y
1z
2x
2y
2z
当我在 3D 应用程序上测试旋转矩阵时,我看到沿 X 轴和 Y 轴的旋转是反转的,而沿 Z 轴的旋转是正确的。
因此,在 X 轴和 Y 轴上,真实相机顺时针旋转的任何旋转都显示为逆时针旋转。
我需要反转这些旋转。
忍受我,因为我的矩阵代数生锈了。
因此,如this SO answer的下一张图片所述,轴的旋转矩阵是
如果我在正确的道路上,我需要将我的旋转矩阵乘以Rx
and Ry
,对吗?
如果我想反转 and 中的旋转X
,Y
我的Rx
andRy
将等于:
我可以相乘Rx
并Ry
获得我必须使用的最终矩阵:
所以,我所要做的就是将我的旋转矩阵乘以R
得到旋转X
和Y
反转,对吧?
不,最终结果是一样的……唯一发生的事情是相机似乎在 Y 轴上旋转了。
我正在使用此代码
我错过了什么?
matlab - 如何从具有高斯噪声的输出中找到变换矩阵?
对于下面给定的输入和输出,矩阵A
可以通过伪逆或mrdivision
在 MATLAB 中找到。同样,我现在想知道,如何确定A
我的输出信号Y
矩阵是否包含加性零均值、不相关、高斯噪声?
另外,我对未知噪声输出进行了建模,如下所示:
python - 为什么在尝试使用 Line3D 对象时 matplotlib 3d 动画不起作用
我有这个代码:
它在使用注释data = ax.plot(segment[0], segment[1], segment[2], color = 'b')
行而不是以下两个行时起作用,(但我正在努力做到这一点,以便在顶部绘制新行时不会绘制之前的行)。
如果您按原样使用代码,动画看起来很奇怪。
我有一个理论line_2d_to_3d
没有按预期工作,但我不确定。
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 提供相机矩阵。我打算从立体图像中计算深度。所以,我只剩下计算它们之间的姿势/变换矩阵了
svg - 如何使用 SVG 元素的转换矩阵来计算目标坐标?
我怀疑有某种方法可以在转换后使用元素的转换矩阵来计算其坐标,但我不知道该怎么做。
一个示例图最好地解释了这一点:
恐怕我没有将数学路线带入编程。我可以理解转换矩阵在做什么的表面细节,但我的理解有点像一次能读一个音符的音乐,而且速度很慢;我对更高层次的曲调不是很了解,所以我对一个完整的乐句的声音也不是很了解——更不用说旋律了。
同样,我不明白转换矩阵是如何工作的。我曾尝试寻找 grok 转换矩阵的解释,但我发现的所有内容都包含更多我不理解的数学术语。我只知道它们的工作方式有点像函数,而且它们是非常灵活的工具,但仅此而已。
在所有可用的方法中SVGMatrix
(据说不推荐使用DOMMatrix
,但 Firefox Dev. ed. 仍在使用SVGMatrix
),我不知道是否.inverse()
或者.multiply()
是我想要的,也不知道如何哄出一组简单的x
和y
坐标矩阵。
笔记:
- 我对在这里将屏幕转换为 SVG 坐标不感兴趣。
- 我只关心 SVG(用户空间)坐标。
opencv - 来自 EstimatePoseSingleMarkers 的变换矩阵
我尝试从我的相机获取转换矩阵到 aruco 标记的中点,然后使用cv2.aruco.estimatePoseSingleMarkers
函数。
在描述中它说:
返回的转换是将点从每个标记坐标系转换到相机坐标系的转换。
我将标记检测结果的角点提供给姿势估计函数,并使用 cv2.Rodriguez 将旋转向量转换为旋转矩阵。生成的平移向量已经不同于从相机坐标到标记坐标的测量平移,据我所知,它应该是相同的。
不管推断如何,我初始化一个 4x4 变换矩阵,并将旋转矩阵和来自姿态估计的平移向量放入 4x4 矩阵,我假设它给出了从标记坐标系到相机坐标系的变换,但是当我更正变换时从环境的另一点来看,它表明变换矩阵不正确。
我确信MARKER_SIZE。
谁能告诉我我做错了什么,并解释通过 获取从相机坐标到标记坐标的变换矩阵的步骤cv2.aruco.estimatePoseSingleMarkers
?
python - 两组相似 3D 点的对齐/配准,无序
我有两组无序的 3D 点(A 和 B),我想对齐它们。如果匹配正确,这两组非常相似:除了一个点移动剧烈外,其他点基本处于同一位置。我想要得到的是允许我将 A 匹配到 B 的转换矩阵。
我研究了CPD(相干点漂移)算法并尝试使用pycpd python 模块编写解决方案,但它似乎没有按预期工作。当使用两个相同的点集进行测试时,只有一个点的一个坐标(在示例中B[0][1]
)发生了变化,这两个点集没有正确对齐......
这是我的输入代码:
这是运行严格注册后的结果点
知道我可能做错了什么吗?你能为我指出正确的方向吗?
谢谢
java - 旋转 Y 轴以翻转纹理朝向反转 X 轴
我想沿 Y 轴旋转我的精灵(将旋转应用于变换矩阵)以翻转精灵的方向。
但不知何故,它似乎也影响了我的输入系统......
按右变成左......而且似乎精灵不再呈现在实体真实位置..“真实位置”由输入系统和紧随其后的是相机,但精灵的方向相反,就好像输入被反转了一样。(输入改变与按下的键相对应的速度,并且变换分量在每次更新时由该向量平移)
这是我用来获取矩阵的代码:
我已经检查并重新检查了我的旋转矩阵,但他们在这里过于自信:
我按这个顺序在我的着色器中使用 mvp 矩阵projection_matrix * view_matrix * transformation_matrix * vec4(attribute_position, 1.0)
。
python - 如何使用python中的平移矩阵将小图像的特定坐标放置到大图像的特定坐标
我正在学习OpenCV,我正在寻找python中的代码,它获取小图像的输入坐标并将其映射到大图像的坐标,以便将小图像插入到大图像中,并且可以像这样进行变换旋转。我想使用翻译矩阵作为输入来做到这一点。例如,如果矩阵是:
这意味着小图像中 (75, 120) 处的像素应映射到大图像中 (210, 320) 处的像素,小图像中 (30, 90) 处的像素应映射到大图像中 (190, 305) 处的像素...我搜索了很多,但我没有得到我的问题的正确答案。我怎么解决这个问题?