问题标签 [extrinsic-parameters]

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

opencv - OpenCV:基本矩阵和移动相机

我有一个校准的(内在参数)相机。我从物体中拍摄立体照片,并在重新投影过程中使用它们来找到物体的一些 3-D 信息。

为此,首先我计算了基本矩阵。然后,我得到基本矩阵,从那里,我得到旋转矩阵和平移向量以及其他需要的信息。

问题是,使用不同的参数,我会得到非常不同的结果。我知道对于相同的立体图像,基本矩阵可能不同,但我希望有相同的旋转矩阵和平移向量。然而,每个不同的参数(例如匹配特征的数量)都会导致不同的矩阵。我错过了什么吗?我对相同的立体图像应该提供(相当)相同的旋转、平移和重新投影矩阵吗?

这是我的代码。任何帮助,将不胜感激。谢谢!

0 投票
1 回答
1793 浏览

opencv - 我可以使用已知对象大小而不是平面来估计相机姿势/外部参数吗?

我的标题可能很糟糕,如果有人想提出一个更好的问题,我会改变它:)

我之前已经成功地使用已知世界尺寸的地平面校准了相机,但现在我正在尝试确定是否可以在我知道它的高度时仅通过识别 2D 中的对象来计算相机的外在因素(内在因素是已知的)。

世界空间中具有已知尺寸的对象,以及在屏幕空间中检测到的对象 坦率地说,我认为这可以用三角函数来完成,但我还没有弄清楚......

也许我可以在两个对象之间构建三角形并确定地平面上的距离,然后在我有一个模糊的平面后进行正常的姿势估计?

我一直在搜索,但没有找到任何关于通过这种方法执行此操作的算法的参考......可以做到吗?

0 投票
0 回答
260 浏览

intrinsics - 图像到世界投影

我有来自两个不同相机的同一场景的 RGB 图像和 8 位深度数据,需要在 3D 空间中生成点云。

我用这篇论文来了解如何做到这一点。

如方程式中所述。1 我们可以在图像中找到一个像素的世界点的非齐次坐标,如下所示,

在此处输入图像描述

方程。图 5 显示了如何找到 lamda1,如下所示,

在此处输入图像描述

然后为了根据深度图像中的 8 位深度值找到真实的深度值,我使用了以下公式。4 从这篇论文中, 在此处输入图像描述

因此,由于我使用了投影矩阵,因此我希望从两个摄像机的数据生成的两个点云彼此对齐,但是点云彼此不重合并产生了尴尬的结果。有人能指出问题出在哪里吗?

0 投票
1 回答
1617 浏览

java - Java享元模式:外部和内部状态?

我对模式的这些状态的差异感到困惑Flyweight

我知道intrinsic状态是共享的状态,而Extrinsic不是共享的状态。

但是,我看不到extrinsic状态在模式或以下示例中的重要性:

参考维基百科中关于文本编辑器的示例。内在状态是字母,外在状态是字体、颜色等吗?

0 投票
1 回答
2575 浏览

camera - 从基本矩阵确定相机旋转和平移矩阵

我正在尝试从基本矩阵中提取旋转矩阵和平移矩阵。我把这些答案作为参考:

通过 SVD 从基本矩阵中提取翻译的正确方法

从基本矩阵中提取平移和旋转

现在我已经完成了将 SVD 应用于基本矩阵的上述步骤,但问题来了。根据我对这个主题的理解,R 和 T 都有两个答案,这导致了 [R|T] 的 4 种可能的解决方案。然而,只有一种解决方案适合实际情况。

我的问题是如何确定 4 种解决方案中的哪一种是正确的?

我只是研究相机位置的初学者。因此,如果可能的话,请让答案尽可能清晰(但简单)。任何建议将不胜感激,谢谢。

0 投票
1 回答
1410 浏览

opencv - 旋转框相机参数

我有一个使用校准相机捕获的帧/图像。两组相机参数(内部和外部)均可用。我想知道,如果我在水平和垂直方向上翻转框架(有效地将其旋转 180 度),我需要更改原始相机参数以获得旋转图像的正确参数?

任何帮助表示赞赏。谢谢..

0 投票
2 回答
2742 浏览

opencv - cv::solvePnPRansac 返回单位矩阵

我想使用 cv::solvePnPRansac 找到给定 3D 到 2D 对应的对象姿势。我的通信可能有异常值,所以我不想使用 cv::solvePnP。我在 opengl 中使用了从相机拍摄的快照的 3D 到 2D 对应关系。所以反投影后发现使用solvePnP后返回的旋转矩阵是正确的。但是,当我使用solvePnPRansac 时,我得到一个单位矩阵和零平移向量。请帮忙!我使用了以下代码。提前致谢 !

运行代码后,我得到以下输出。

0 投票
2 回答
2388 浏览

computer-vision - 相机外部校准

我有一个鱼眼相机,我已经校准过了。我需要通过使用所述棋盘的单个图像、内在参数和棋盘正方形的大小来计算棋盘的相机姿势。不幸的是,许多校准库首先从一组图像计算外在参数,然后是内在参数,这本质上是我想要的“逆”过程。当然,我可以将我的棋盘图像放在我用于校准的其他图像集中,然后再次运行校准程序,但这非常繁琐,而且我不能使用与用于校准的棋盘大小不同的棋盘内在校准。谁能指出我正确的方向?

编辑:阅读 francesco 的回答后,我意识到我没有通过校准相机来解释我的意思。我的问题始于我没有经典的内在参数矩阵(所以我实际上不能使用 Francesco 描述的方法)。事实上我用 Scaramuzza 的程序校准了鱼眼相机(https://sites.google .com/site/scarabotix/ocamcalib-toolbox),它基本上找到了一个将 3d 世界点映射到像素坐标的多项式(或者,将像素反向投影到单位球体的多项式)。现在,我认为这些信息足以在棋盘上找到相机姿势,但我不确定如何进行。

0 投票
2 回答
2104 浏览

opencv - 非平面设备的相机校准

根据我得到的结果和提供的文档,我得出结论,使用非平面钻机进行校准在 OpenCV 中不起作用(它们在很大程度上取决于最初的猜测)。根据他们的功能文档calibrateCamera

该算法执行以下步骤:

  • 计算初始内在参数(该选项仅适用于平面校准模式)或从输入参数中读取它们。失真系数最初都设置为零,除非某些 CV_CALIB_FIX_K? 被指定。
  • 估计初始相机位姿,就好像内在参数已知一样。这是使用solvePnP完成的
  • 运行全局 Levenberg-Marquardt 优化算法以最小化重投影误差,即观察到的特征点 imagePoints 和投影(使用当前对相机参数和位姿的估计)对象点 objectPoints 之间的总平方和。有关详细信息,请参阅项目点。

如果您使用非平面钻机作为输入,您还需要提供内在的初始估计,从而确认第一点。

所以,我的问题是,是否有任何可用的库(任何语言)可以实现为非平面钻机查找内在函数(或者可能与外在函数一起)?

0 投票
0 回答
3727 浏览

c++ - 外部相机校准 OpenCV

我正在尝试校准我安装在一个装置上的四个相机的外部参数。它们相距 90 度。我已经校准了内在参数,我正在考虑使用校准模式的图像来查找外在参数。到目前为止我所做的是:放置校准图案,使其平放在桌子上,使其滚动角和偏航角为 0,俯仰角为 90(因为它与相机平行)。摄像机有 0,90,180,270 度角偏航(因为它们相距 90 度),摄像机的滚动角为 0(因为它们不倾斜。所以剩下要计算的是摄像机的俯仰角。

我无法完全理解如何计算它,因为我不习惯在坐标系之间进行映射,所以欢迎任何帮助。我已经制作了程序的一部分,该程序使用cv::solvePnPRansac()函数计算旋转向量(图像中的校准模式),所以我有旋转向量(我相信我可以使用简历::罗德里格斯()

在我的计算中,下一步对我来说是什么?