问题标签 [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 投票
2 回答
306 浏览

opencv - 需要帮助使用 open cv c++ 对对象进行姿态估计

我有来自校准相机的内在和失真矩阵。我正在使用 open cv 3.2 c++。我得到对象姿态估计的错误输出。帮我解决这个错误。值和错误图像附在下面。

我已经有了图像和对象点,所以继续使用solvepnp来获取旋转和平移向量。所以,

图片如下所示。估计位姿的误差输出

编辑:对象点和图像点以相同的方式正确排序。我确定订单,我已经完成了主要订单。

我有两个疑问, 1.虽然它们的顺序正确,但有时姿势结果错误如下所示,可能是什么原因?

错误位姿输出

2.如果我画了,估计的姿势只在 Image_points[0],结果是正确的,但不是在任何其他点。有人可以解释为什么 Image_points[30] 的姿势错误吗?在任何时候,物体的姿势都应该是一样的,对吧?

0 投票
1 回答
179 浏览

java - ReentrantLock 线程随机终止

我一直在做一个关于 Java 多线程的学校作业。我卡在其中的一个任务是,我们需要在不同的组中创建多个线程,并且一旦每个组中有 4 个线程,它们才能被释放以一致地工作,否则它们必须被搁置/等待。例如:

  • 线程 a、b、c 加入第 7 组,它们都被搁置/等待。
  • 线程 d 加入组 7,所有四个线程 (a,b,c,d) 都被通知终止。
  • 线程 e,f,g,h,i 加入第 8 组,在这种情况下,当线程 i 处于等待状态时,e,f,g,h 将发出终止信号。
  • 线程 j 加入第 7 组,处于等待状态。

这是我完成的一般任务。我正在处理的任务要求我们释放组中的前 4 个初始线程,其余的应该等到前面的 4 个线程调用完成()。

例如,3 个线程加入组 65,它们处于等待状态。另一个线程加入组 65,所有 4 个线程一起释放。现在有 4 个线程正在工作(已终止)。现在线程 e,f,g,h,i,j,k,l 加入组 65。所有线程都等待直到 e,f,g,h 调用了 finished() 方法。

这是我到目前为止所做的:

ExtrinsicSync.java:

外部同步测试.java:

ConditionWrapper.java:

我遇到的问题是我能够释放每个组的前四个线程,但不知何故,某处有 2 个线程被随机终止,我无法弄清楚发生了什么。例如,将上面的 22 个线程测试用例分为两组,只有 8 个线程应该被终止,其余的线程等待。

但是这里有 10 个线程被终止。我不明白发生了什么事。我已尽我所能将代码精简到最低限度。

0 投票
1 回答
321 浏览

camera - 相机的外在矩阵

我正在尝试使用 MATLAB 的相机校准器来校准红外相机。我只需将大约 100 张图像输入校准器即可获得内在矩阵。但我正在努力解决如何获得外在矩阵 [R|t]。

因为外在矩阵是用来映射世界坐标系和相机坐标系的,所以理论上来说,当相机(物体)在移动的时候,会有很多外在矩阵。

在下图中,如果使用 50 张图像确定内矩阵,那么每张图像对应的外矩阵有 50 个。我对么?

校准会议

0 投票
0 回答
14 浏览

triangulation - 使用 N 个视图的基本矩阵进行 3D 重建?

使用 OpenCV,我计算了我拥有的每对相机的内在和外在参数。我的问题是,我可以使用所有这些参数从多个视图中 3D 重建一组点吗?我可以使用捆绑调整来细化外部参数,在这种情况下我什至需要使用捆绑调整吗?到目前为止,我已经尝试根据之前的相机计算相机的位置,除了位于世界框架中心的第一个相机(0.0,0.0,0.0)。

0 投票
0 回答
198 浏览

python - 如何获得具有已知初始外在因素的相机的 3D 点?

我正在估计一个带有 apriltags 的物体的姿势。

我最初为 apriltag 板成功地做到了这一点:在此处输入图像描述

使用标记半径 (tag_size/2) 找到 3D 点,如代码所示:

现在我必须估计一个带有 apriltags 的物体的姿势。我现在有了固定在对象上的 apriltags 的已知初始姿势(旋转和平移向量)。

我在旋转向量上使用了 Rodrigues 来获得旋转矩阵。使用这个:在此处输入图像描述

我知道我还必须将平移向量应用于旋转矩阵。这将是 3x4 矩阵,也就是姿势。而且我知道 Z 将始终为“0”,但我对如何将其用于 3D 点感到迷茫。

我的问题是:

  1. 如何使用这些已知的外部参数来获取该对象的 3D 点?我是否解决了 X 和 Y 并将 Z 应用为 0?我该怎么做呢?

任何帮助将不胜感激!

0 投票
0 回答
19 浏览

c# - 如何根据同质 Matrix4x4 设置和更新相机位置?

我已经从 3D 扫描仪导出了 3D 模型和同质坐标。我想使用这个矩阵将相机定位在场景中并根据矩阵移动相机。我在方法中使用以下代码update来做到这一点,

mainCam 是 MainCamera,值m11,m12,m13..来自导出的值。有时相机投影看起来不错,但有时相机看起来或朝相反的方向移动。我错过了什么吗?

0 投票
1 回答
71 浏览

substrate - 支持外部复杂(结构)类型

我正在尝试在外部参数声明中使用以下结构:

这是外部声明:

这会导致编译错误:

有人可以解释对于复杂类型(例如结构/vecs/vecs 的结构/等)的外部参数的要求是什么?我看过 WrapperTypeEncode 文档https://docs.rs/parity-scale-codec/2.2.0/parity_scale_codec/trait.WrapperTypeEncode.html但他们没有拼出这些信息。

非常感谢!

0 投票
0 回答
33 浏览

camera - 从外在矩阵和内在矩阵中寻找相机位姿

我在 2 个位置获得了相机的内在和外在矩阵。虽然我能够计算它们在世界坐标中的相对相机中心,但如何计算这两个点之间的变换矩阵 [Rt]?谢谢!

0 投票
0 回答
47 浏览

opencv - 将网球场的顶点从 3D 投影到 2D 不起作用

背景

我已经定义了一个带有 3D 点的网球场,并且我正在尝试使用 OpenCV 将 3D 点投影为 2D 图像。

下面是我用来定义网球场的 3D 点。以供参考:

  • 场上左边是-X,右边是+X,
  • 向上是-Y,向下是+Y,并且
  • 网的远端是+Z,近端是-Z。
  • 点(0,0,0)是左侧线与网线(基本上是左侧网柱)的交点。

作为其他参考,这里是我的相机的内在矩阵和失真参数(使用 OpenCV 获得并经过验证):

这是我用来将每个 3D 点投影到 2D 并使用 Matplotlib 绘制点/线的代码。

问题

当我对这些点进行投影并绘制图表时,我希望得到一个看起来像网球场的东西,但我只得到了一团点!

为了排除故障,我决定使用球场的四个角(即 DefineCourtPoints 中的前四个点)仅绘制球场的外边缘。我希望看到一个矩形或平行四边形,因为它们是矩形的有效投影。但是,我得到如下内容,这实际上没有任何意义,因为它已经越界了:

投影输出......不是我所期待的

上面的结果是使用R = [0, 0, 0] 和获得的T = [0, -10, 0]

以下是上述结果的四个点的坐标,表明我并没有通过以错误的顺序绘制线条来导致奇怪的形状:

问题

为什么对于像矩形/网球场边界这样简单的 3D 对象,我会得到如此奇怪的投影?

有人得到和我一样的结果吗?

谢谢!

自己试试