问题标签 [matrix-transform]

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 投票
2 回答
133 浏览

python - 矩阵:有效地将第 n 行移动 n 个位置

我有一个 numpy 2d 数组,我需要以第一行保持不变的方式对其进行转换,第二行向右移动一个位置(它可以环绕或仅在前面填充零)。第三行向右移动 3 个位置,依此类推。我可以通过“for 循环”来做到这一点,但这不是很有效。我猜应该有一个与原始矩阵相乘的过滤矩阵会产生相同的效果,或者可能是一个可以帮助我做到这一点的 numpy 技巧?谢谢!我研究了 numpy.roll() 但我认为它不能单独在每一行上工作。

0 投票
0 回答
41 浏览

java - Java如何放大矩阵

在 Android 中,我有:

1)矩阵(大小为257x257, float[257][257],每个元素代表图像像素的一个参数);2) 图像(大小为nx257, nx257, bytearray[n*257][n*257]n 为float, >=1)

如何将矩阵缩放到图像大小,重复元素,如下所示:例如:

缩放两倍至:

如果 n*257 不是整数,则允许边缘不准确。我知道 Python numpy 如何做到这一点,但在 java/android 中,我还没有找到一种高效的方法。谁能帮我?谢谢!

0 投票
0 回答
26 浏览

matlab - 计算平行平面上到法线向量的距离

我的数学(和 matlab)只是不符合这个,所以我谦虚地请求你的帮助:

我有一个通过环形空间的流动模型。我想得到峰值流量点的半径和环到中心线的半径。

因此,我在 3D 模型中有 3 个点 ABC,其坐标我们知道但未与 xyz 对齐。我希望 AB 是平面上的两个点,点 A 是原点(环的中心)。点 C 位于与前一个平面(峰值流量点)平行的平面上。我想知道如何计算其平面上的 C 与通过点 A 的 AB 平面的法向量之间的距离。

以下是模型的图片: 流经模型 中的环点

现在我有一个比我聪明的朋友,他想出了一个 matlab 代码来平移和旋转模型,然后计算 AB 和 AnormC 的大小。但是,它不起作用,因为它使 C 的半径大于 B。我也意识到解决这个问题的方法不止一种。

代码如下。有什么想法我们哪里出错了吗?或者也许有更好的方法来做到这一点?我想到了矢量,但我的涂鸦一无所获。

谢谢你。

托比

0 投票
0 回答
285 浏览

python - 使用 getPerspectiveTransform 获取变换矩阵,然后用它来将单个点变换为扭曲空间

我有以下图像:

在此处输入图像描述

如您所见,那里有一个绿点,坐标为 (x1,y1)。接下来,我确定一些参考点和目标点,以便使用以下方法获得相应的透视变换矩阵:

我应该如何使用该矩阵将 (x1,y1) 点转换为具有新视角的新点 (x2,y2)。

在此处输入图像描述

作为另一个示例,假设您在原始图像中有两个点,它们之间的距离为 d1,但您想要这两个点之间的真实距离 d2。然后,您应该将两个点都转换到新空间中(从鸟瞰角度)并再次计算距离。

具体来说,变换矩阵为:

我要改造的一点是:

谢谢

0 投票
0 回答
29 浏览

linear-regression - 寻找一个非线性变换矩阵(就像一个有趣的房子镜子)

找到非线性变换矩阵的最有效方法是什么。

从概念上讲,想象一个人的正常图像,然后是同一个人的游乐园镜像。 游乐园形象

你如何找到“镜子”?- 您可以将矩阵应用于正常图像,从而为您提供以相同方式扭曲的游乐园镜像?

应该可以推广到更高的维度。如果我有一个带有使用嵌入方法 1 的向量的项目和一个使用嵌入方法 2 的向量,我如何找到一个矩阵来允许我将具有嵌入 1 的新项目投影到嵌入方法 2 向量空间中?

我使用最小二乘法使用了以下线性解决方案:

但我认为我需要一个非线性解决方案才能获得更好的结果。

0 投票
1 回答
332 浏览

matlab - 如何使用 plot3 绘制 3D 矩阵

我有一个图像(mat 文件),可以将其作为 2D 矩阵 2*10095 访问。然后我对其进行线性代数处理,将其投影到法向量 N = [1,2,3] 的平面上,并得到 3D 矩阵 (x,y,z) 的值。

如何在 Matlab 中使用 plot3 绘制 3D 矩阵?plot3 接受三个参数 (x,y,z) 并且我的矩阵中的每一列都有这些参数 [x;y;z] 但是我怎样才能将所有 10095 列传递给 plot3 - 那不会显示图像“铺设”根据我在z轴上的计算?

当它是二维矩阵时,我用它来绘制图像:

0 投票
1 回答
140 浏览

svg - FireFox 上的 SVG getScreenCTM()

目标

我正在尝试在 SVG 中构建签名板。您可以 在此处查看示例项目

描述 到目前为止,它可以在 Chrome、Edge 和 Opera 中正常工作,但在 Firefox 中,getScreenCTM() 不考虑规模。

研究

我浏览了来自 bugzilla 的一堆文档以及 SO 中的一些帖子,例如SVG:GetScreenCTM() for nested SVG is different in Firefox但是,仍然无法弄清楚如何解决我的问题。

问题

我添加了一个浏览检查来仅处理 Firefox(因为所有其他浏览器都提供了所需的结果),这允许我添加额外的代码来解决问题,但到目前为止,还没有成功。(SP签名:416)

重现错误

要重现该错误,请在 FireFox 中打开示例链接,然后调整框的大小,使其至少比全屏时小 20%。您将看到鼠标 X/Y 位置随着比例的变化而变化。

我试图从组标签中获取矩阵变换,但是它从 SVG 返回了类似的结果。如何计算 CTM,使其结果类似于/等于 Chrome?

代码

源代码在这里SPSignature:416

0 投票
0 回答
29 浏览

2d - 对父项中的子项进行 2D 矩阵变换(分层变换)

我正在使用 Skia 和 C++,但问题实际上与框架和语言无关。

我有可以具有平移、旋转和缩放的对象。它们也可以有一个不是 (0,0) 的局部原点 - 例如,一个正方形的原点可能位于中心而不是左上角。

对象可以有子对象,并且这些子对象相对于父对象进行变换。矩阵在沿层次结构移动时被组合。

这是我如何做的示例代码,它按预期工作。

但我的问题是 - 我怎样才能改变它,这样我就不必将原点乘以比例?

我迷失在前后连接(乘法)矩阵运算顺序中!

任何帮助表示赞赏

0 投票
2 回答
86 浏览

c - 如何在 C 中反转欧几里得(仅变换和旋转)矩阵?

你如何反转只有平移和旋转,没有比例的 4x3 矩阵?你会用什么来做一个OpenGL矩阵逆(只是没有缩放)?

0 投票
0 回答
26 浏览

android - Android:3D变换对象

在 Android 应用程序中,我有一个通过自定义视图创建的对象。它基本上具有矩形形状。我想应用一个 3D 转换,使它看起来像这样:

我有什么和我想要什么

draw()函数中,我尝试了各种类似的方法:

我无法让它工作。我的错在哪里?我错过了什么?