问题标签 [opencv-solvepnp]

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 投票
0 回答
129 浏览

opencv - 在 OpenCv 中使用 SolvePnP 时的断言错误

我试图从我遵循此处描述的输入类型中找到校准,但我遇到了这个错误:

示例代码

这个错误可能来自哪里的任何提示?

0 投票
0 回答
229 浏览

c++ - C++ OpenCV 4.4.0 solvePnP 错误:(-215:断言失败)

我正在尝试编写一个简单的增强现实程序,给定并输出视频和相机内在参数,将 3 行投影到每个视频帧中。这些线是 x、y 和 z 轴。

我不是为程序本身寻求帮助,而是为solvePnP函数寻求帮助,因为我只是不明白我在做什么才得到这个错误:

抛出'cv :: Exception'实例后调用终止what():OpenCV(4.4.0)/home/nel/opencv-4.4.0/modules/calib3d/src/solvepnp.cpp:753:错误:(- 215: 断言失败) ( (npoints >= 4) || (npoints == 3 && flags == SOLVEPNP_ITERATIVE && useExtrinsicGuess) ) && npoints == std::max(ipoints.checkVector(2, CV_32F), ipoints.checkVector( 2、CV_64F)) 在函数“solvePnPGeneric”中

这是我的代码:

0 投票
1 回答
534 浏览

python - 使用图像上的点之间的已知距离及其透视图确定视野(OpenCV python)

得到一个已知大小的棋盘的图像(青色线长 2 厘米)

确定 FOV 的简单方法如下:

但这并没有考虑到透视失真。所以我得到了它的旋转和变换向量solvePnPRansac(图像上的轴正确地说明了它的方向)。

我想应该有足够的数据来几乎精确地确定以 mm 为单位的视野,但无法进一步移动,我不太擅长矩阵和东西......有什么提示吗?

插图

0 投票
0 回答
475 浏览

opencv - 如何将外部 RGB 摄像头与 Azure Kinect 深度传感器对齐

我将使用 Panasonic LUMIX GH5 和 azure Kinect 设置我的 RGBD 相机,就像深度套件影院一样。

depthkit 不提供原始深度数据,而是提供 obj 序列文件。我需要与 RGB 图像对齐的深度缓冲区。

所以我开始为它编写软件。(我已经用 SmallRig 固定装置修复了我的 Panasonic LUMIX GH5 相机和 azure Kinect。)

使用 OpenCV 的 solvePnP 函数获得 GH5 和 Azure Kinect RGB 传感器的外部参数后,如何使用它们将 GH5 彩色图像与 Azure Kinect 深度图像对齐?

还是我应该采取另一种方法来实现这一目标?

我找不到这个问题的任何想法或资源。

在 Azure Kinect 文档中,我在 Azure Kinect SDK 中找到了“k4a_transformation_depth_image_to_color_camera_custom”函数。

这种方法对我的情况有用吗?如果为真,我怎样才能获得其参数的k4a_transformation_t值?

0 投票
0 回答
77 浏览

python - solvepnp 是否给出了相对于对象的相机位置绝对相机位置?

我想根据标记找到相机位置并将其用作基本事实。我使用以下代码通过solvepnp 查找姿势。

K是相机矩阵,imgpoints是角点,objpoints是模型点。基于这些值,我使用以下代码计算了相机位置,

我已将上述相机位置用作基本事实。我有一个附在标记旁边的二维码。我使用二维码以及相同的方法计算了相机位置。但是,两个相机位置偏差很大。为什么呢?有没有办法为相机位置创建正确的地面实况?

0 投票
1 回答
37 浏览

python - 根据相机位置查找两个原点之间的平移

我已经根据相机视野中的两个原点确定了相机位置。假设原点 1 位于 (140,200),原点 2 位于 (70,180)。

以下是相对于原点 1 和原点 2 的相机位置。

而 (X1, Y1, Z1) 是相对于原点 1 的相机位置,而 (X2, Y2, Z2) 是相对于原点 2 的相机位置。

我使用以下代码来计算两个来源之间的转换。

但是,该值是一个标量,而不是基于它们各自相机位置的原点之间的平移的向量 (XYZ) 值。如何获得 XYZ 距离?

0 投票
0 回答
449 浏览

python - OpenCV Python solvePnP 的 EPnP 实现不产生与官方 MATLAB EPnP 实现相同的输出

这些天我正在努力理解用于计算机视觉的solvePnP算法。我在这里找到了 MATLAB 中的官方 EPnP 算法https://github.com/cvlab-epfl/EPnP

我正在通过 Python API 将官方实现的结果与 OpenCV 版本进行比较。

用这两种方法运行一个简单的例子,给了我不同的 R 矩阵和 t 向量。t 个向量是不同的,并且 R 的上面两行的符号被翻转(参见下面代码示例下的输出)。我在这里想念什么?

谢谢!

示例 Python 代码:

使用 Octave 的示例 MATLAB 代码:

蟒蛇输出:

八度输出:

0 投票
1 回答
34 浏览

opencv - solvePnP 可以处理图像框架之外的点吗?

Kontext:我有一个足球场,我正在构建一个用于相机校准的管道(远未实际实现)。摄像机是静态的并且具有该领域的概览。经过一些准备后,我想通过场线的交叉点来计算带有solvePnP的相机的外部参数。但有时相机图像不显示可以轻松计算的场角。但是solvePnP可以处理这些场外的点还是有另一个功能可以解决这个问题?

0 投票
1 回答
132 浏览

c++ - 使用solvePnP时如何解决断言错误?

我是 Visual Odometry 的新手,正在学习使用 PnP 解决 VO 的教程。但是,当我运行程序时,出现以下错误:

我的代码如下:

argv[1]是将rgb图像与深度关联起来的文本文件,格式如下:

我已经在网上搜索了解决方案并尝试了所有方法,但仍然是徒劳的。

我真的很感谢你们的帮助,在此先感谢。

**更新:发生异常的输入如下,只有三对:

0 投票
0 回答
58 浏览

opencv - 为什么solvePnPRansac返回一个过大的平移向量?

我最近一直在研究视觉里程计。问题是,当我使用 OpenCV 中的 solvePnPRansac 时,它在计算特定一对图片的矩阵时会输出一个过大的平移向量。

我使用 ORB 作为检测器,使用蛮力匹配作为匹配器,并进行了比率测试以获得良好的匹配,使用 PnP 后的关键点如下

我已经将 keypoints_1 中点的坐标转换为相机帧,我给solvePnPRansac的参数如下:

如你所见,平移向量变得很奇怪,怎么这么大是我无法理解的,我也想问最好设置的重投影误差是多少,因为 0.5 是我随机给出的一个数字。

非常感谢您的帮助,在此先感谢大家。