问题标签 [projective-geometry]

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 投票
4 回答
10846 浏览

matlab - Matlab的三角函数中的重投影误差是如何计算的?可悲的是,文档没有给出数学公式

Matlab的三角函数中的重投影误差是如何计算的?

可悲的是,文档没有给出数学公式。

它只说:The vector contains the average reprojection error for each M world point.

计算此错误时使用的程序/Matlab 是什么?

我搜索了 SOF,但在这个恕我直言的重要问题上一无所获。

更新:他们如何使用此错误来过滤掉错误的匹配项:http: //se.mathworks.com/help/vision/examples/sparse-3-d-reconstruction-from-two-views.html

0 投票
1 回答
140 浏览

algorithm - 8 点算法中的极线约束

我正在开发一个使用两台相机的系统,我想知道极线约束是否可以通过一个不属于基本矩阵集的矩阵来满足?如果是这样,在什么情况下我必须处理这个矩阵?

0 投票
1 回答
452 浏览

c++ - 使用来自三焦点张量的投影矩阵进行 3D 重建

根据“Hartley & Zisserman 的多视图几何,第 2 版”,第 16 章,我计算了三焦张量和相应的投影矩阵P_0P_1P_2从 3 个视图上的线对应。计算的矩阵是:

现在我想从这些投影矩阵中计算 3D(plücker)线。我知道内在的相机矩阵K。我不明白的是,如何将固有矩阵K与来自 trifocal 张量的归一化投影矩阵相结合,P_1以获得正确的 3D 信息。更具体地说,我想遵循Bartoli 和 Sturm描述的三角测量程序(第 4 节,三角测量)。P_2P_3

我感谢您的帮助。

0 投票
0 回答
651 浏览

c++ - 从基本矩阵中恢复姿势给出了平移向量的不一致符号

我有三个点对应的视图,我想计算相机在第二个和第三个视图的姿势。因此,我生成了一个随机数据集(无噪声),其中包含不同视图中的点,其中相机在第二和第三视图相对于第一视图的旋转和平移已知。我首先在第一个视图中生成随机 2D 点,然后分配随机(正)深度以获得相应的 3D 点,最后使用随机生成的旋转和平移将这些 3D 点投影到第二个和第三个视图中。

首先,我计算三焦张量(参见 Hartley & Zisserman,Multiple View Geometry 第 15 章)。然后我按照这个答案中描述的方法来获得第二个和第三个视图的旋转R_i和平移t_i

计算总是产生正确的旋转,但不幸的是,平移向量的符号并不总是正确的。t2并且t3具有正确的比例,但有时会发生(!),当我使用新的随机生成的数据集时,符号相对于基本事实翻译是反转的,例如:

基本事实:

我的算法的输出(按比例确定翻译):

比较基本事实和我的 and 的输出t2,我们看到它们在尺度上是相同的(在这个例子中,用符号反转),即从基本事实和我的翻译向量(使用 matlab 表示法)t3按元素划分t2./t3算法产量:

我的第一个问题是:翻译向量符号不一致的原因可能是什么?(特别是考虑到结果是正确的事实)。

我的第二个问题是:上述链接答案第 4 步中给出的这些公式来自哪里?我有 Hartley & Zisserman 的“Multiple View Geometry”一书,但在那里找不到描述的算法。

这是我在上述链接中实现算法第 4 步的代码片段(使用 Eigen 库,我不想使用 OpenCV),用于从基本矩阵中找到旋转R和平移向量的正确解决方案,给定 3 -view 齐次二维点对应, , 和:tEp1p2p3

0 投票
2 回答
5884 浏览

matlab - 使用控制点扭曲图像

我想根据从此处提取的此方案使用控制点转换图像:

在此处输入图像描述

AB包含源和目标顶点的坐标。

我将转换矩阵计算为:

到目前为止,它似乎可以正常工作,因为(使用归一化坐标)源顶点产生其目标顶点:

问题是会imtransform产生意想不到的结果:

意外的结果

我怎样才能用它imtransform来产生我的预期结果?:

在此处输入图像描述

有没有其他方法可以实现它?

0 投票
0 回答
734 浏览

math - 转换俯仰角、滚动角和偏航角

我有俯仰角、滚动角和偏航角(以度为单位)。我想找到向北的角度。我的目标是将这些信息(俯仰+滚动+偏航)转换为简单的罗盘度数。

0 投票
4 回答
991 浏览

c++ - OpenCV速度问题

我想用 ~30fps 转换许多点(最好是整个 720p 图像)。现在我只是遍历一个蒙版并寻找标记的像素。然后我将每个标记的像素转换为一个新的帧。有什么办法可以加快速度吗?该代码在 Windows 平板电脑上运行,所以我不知道 CUDA 是否可以提供帮助。

0 投票
1 回答
202 浏览

opencv - OpenCV中的共轭旋转变换

我正在尝试对图像应用某种旋转,但它没有按预期工作。我的轮换是:

这应该是围绕相机中心(或 Z 轴,如果您愿意)旋转约 78 度。为了构建单应性,由于没有翻译组件,我使用公式:(K * R * K^-1无限单应性)。

我用来转换图像(320x240)的代码是:

其中 K 是:

得到的矩阵K * R * K.inv()是:

结果应该只是图像的旋转,但图像会像这样“缩小”:

在此处输入图像描述

我究竟做错了什么?

0 投票
0 回答
88 浏览

3d - 为什么这个预测是错误的?

我想弄清楚为什么 3D 立方体没有投影在图像中的正确位置。

我从原点的相机开始,立方体以 为中心(0,0,1)

正面

R然后我围绕 Y 轴创建 45 度的 3D 旋转:

我将相机设置为使用旋转R^-1,并进行平移R * (0,0,1)(这些是相机到世界的转换)。相机应该围绕立方体逆时针旋转 45 度(我可以确认我0.707106781在 x 和 z 上进行了平移)。

在这一点上,我希望看到具有相同比例的立方体,仍然居中,并且其中一个边缘位于图像的中间。但这就是我得到的:

边45

我用来投影 3d 点的过程X是(伪代码):

  • 带入相机坐标:Xc = R^-1 * X - R^1 * translation
  • 转换为图像坐标:x = Xc * focal length / Xc.z + principal point

我从各种来源阅读了理论,似乎我正在遵守规则。

这只是人工数据,不知道焦距和主点会不会有影响?我究竟做错了什么?为什么立方体不居中?

0 投票
1 回答
1487 浏览

matlab - 如何生成最适合多个 4 点集的投影变换矩阵?

通常我使用这种matlab代码用一组参考点进行投影变换:

现在我有一张照片,展示了一些(例如 10 张)乱七八糟的纸张,每张纸张的尺寸都已知,放在一张普通的大桌子上。这些薄片之间的距离是未知的。

所以我将有 10 个 4 参考点集来获得投影变换矩阵,然后是二维桌面的投影图像。

如何生成优化的转换矩阵(以及后来的投影图像),其中包括所有 4 点集作为一种最佳拟合?

提前致谢。