问题标签 [homogenous-transformation]

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 回答
565 浏览

c# - Vector.Multiply 忽略矩阵的偏移值

我对 WPF 转换类的理解是Matrix表示 2D 均质坐标的 3x3 行主矩阵,其中最后一列始终为 (0,0,1). 我知道这种设计的原因是为了便于将平移表示为矩阵乘法,就像旋转、缩放和倾斜变换一样,而不是单独作为向量,如果使用 2x2 矩阵,就必须如此。

因此,我的期望是当向量乘以包含平移的矩阵时,结果向量应该被平移。在使用 WPF 矩阵类时,这似乎并没有发生在我身上,那么我做错了什么?

结果:

0 投票
1 回答
714 浏览

opengl - 如何修改OpenGL中的透视分割?

如何修改或覆盖 OpenGL 中的透视分割计算?

也可以在 OpenGL 的矩阵中使用 x、y、z 和 w 作为变量吗?

0 投票
1 回答
297 浏览

vector - GLSL 同质转换问题

我正在尝试将由GLSL 中vec3的同质列表示的点转换。mat4该矩阵是沿 x 轴简单平移 1。我已尽我所能检查该矩阵确实将它作为这种形式的适当的列主矩阵进入我的着色器:

我第一次尝试(matrix * vec4(point, 1)).xyz,但是我没有在我的场景中看到翻译的效果。在某些时候,出于绝望,我以与我相同的不同方式重新实现了这种转换,并找到了一种可以满足我需求的方式。但是,我不知道为什么只有一个有效:

奇怪的是,如果我使用 Y 平移,则非工作转换会产生影响,但不会对 X 平移产生影响。

我希望我只是忽略了一些明显的东西。有任何想法吗?

更新

我做了更多的测试,vector * transpose(matrix)并没有给出与matrix * vector. 这是怎么回事?

0 投票
1 回答
1527 浏览

c++ - 在 C++ 和 opencv 中将欧几里得转换为齐次空间

我有一个简单的程序,它通过将 1 附加到点坐标的元组来将欧几里得空间转换为齐次空间。我的原始矩阵是一个 2x3 的矩阵,转换后它需要是一个 3x3 的矩阵。这是我的代码http://pastebin.com/HWhj7Fcd但我不知道为什么会出现此错误:

OpenCV Error: Assertion failed (npoints >= 0 && (src.depth() == CV_32F || src.depth() == CV_32S)) in convertPointsToHomogeneous

谁能告诉我需要改变什么?

0 投票
1 回答
38 浏览

c - warpProspective 协调

我正在使用 opencv 的“warpperspective”函数相对于 image1 转换 image2。

我们的输出图像如下。谁能告诉我如何知道图像下方指向的坐标角?

warprospective 的代码如下 -

谢谢。

0 投票
0 回答
87 浏览

matlab - 如何找到空间中两条 5 次多项式曲线之间的变换矩阵/数学关系?

我有两个不相交的 5 次多项式方程。每条曲线由 100 个点组成,这两条曲线看起来相似,但有细微差别。我正在寻找这两条曲线之间的变换矩阵/数学关系来描述这两条曲线之间的数学关系。

每条线的方程以下列格式定义,并且所有参数都是已知的。

我正在寻找这两条曲线之间的转换矩阵,以根据另一条曲线映射一条曲线。如果您能帮助我使用 MATLAB 代码或任何数学解决方案来解决此问题,我将不胜感激。

在此处输入图像描述

0 投票
1 回答
40 浏览

graphics - 使用 2d 变换移动对象

给定左边的正方形,我需要用变换制作右边的正方形。

这是我的尝试 在此处输入图像描述 ,但是当我在其中一个点(例如点 D(-1,1)) 上检查它时,我没有得到正确的结果(D(4,4,))。

我不明白我的错误在哪里。

旋转是否正确(-90)?

0 投票
1 回答
2762 浏览

opencv - 使用 opencv 将 3d 相机坐标转换为 3d 真实世界坐标

我正在研究基于 openCV 的立体视觉系统,该系统当前返回正确的 3d 坐标,但视角错误。

我编写了一个函数,它为我提供了来自棋盘的相机 3d 坐标和预期的真实世界坐标,但我没有找到如何从这些数据生成转换矩阵。

我在 OpenCV 中找到的所有可能的函数都不起作用,因为它们使用图像上的 2d 坐标,而不是计算的 3d 坐标。

0 投票
2 回答
2729 浏览

python - 用python估计欧几里得变换

我想做一些类似于图像分析中使用特征的标准“图像配准”的事情。

我想找到将一组 2D 坐标 A 转换为另一个 B 的最佳转换。但我想添加一个额外的约束,即转换是“刚性/欧几里得转换”,这意味着没有缩放,只有平移和旋转. 通常允许缩放我会这样做:

我相信estimate_transform引擎盖下只是解决了最小二乘问题。但我想添加无缩放的约束。

skimage 或其他软件包中是否有任何功能可以解决此问题?可能我需要用 scipy、CVXOPT 或 cvxpy 编写自己的优化问题。对短语/实现这个优化问题有什么帮助吗?

编辑:感谢 Stefan van der Walt,我的实现

0 投票
3 回答
5028 浏览

scala - 为什么在 Spark 中聚合和折叠两个不同的 API?

使用 Scala 标准库时,我可以这样做:

从许多 Int 中制作一个 Int。

我可以做这样的事情:

从许多 Int 中制作一个 String。

因此, foldLeft 可以是同质的或异构的,无论我们想要什么,它都在一个 API 中。

在 Spark 中,如果我想要许多 Int 中的一个 Int,我可以这样做:

fold API 类似于 foldLeft,但它只是同构的,一个 RDD[Int] 只能产生带有 fold 的 Int。

spark中也有一个聚合API:

它是异构的,一个 RDD[Int] 现在可以产生一个字符串。

那么,为什么在 Spark 中 fold 和 aggregate 实现为两个不同的 API?

为什么它们不像 foldLeft 那样设计,既可以是同质的又可以是异质的?

(我对 Spark 很陌生,如果这是一个愚蠢的问题,请原谅。)