问题标签 [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.
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”中
这是我的代码:
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值?
python - solvepnp 是否给出了相对于对象的相机位置绝对相机位置?
我想根据标记找到相机位置并将其用作基本事实。我使用以下代码通过solvepnp 查找姿势。
K
是相机矩阵,imgpoints
是角点,objpoints
是模型点。基于这些值,我使用以下代码计算了相机位置,
我已将上述相机位置用作基本事实。我有一个附在标记旁边的二维码。我使用二维码以及相同的方法计算了相机位置。但是,两个相机位置偏差很大。为什么呢?有没有办法为相机位置创建正确的地面实况?
python - 根据相机位置查找两个原点之间的平移
我已经根据相机视野中的两个原点确定了相机位置。假设原点 1 位于 (140,200),原点 2 位于 (70,180)。
以下是相对于原点 1 和原点 2 的相机位置。
而 (X1, Y1, Z1) 是相对于原点 1 的相机位置,而 (X2, Y2, Z2) 是相对于原点 2 的相机位置。
我使用以下代码来计算两个来源之间的转换。
但是,该值是一个标量,而不是基于它们各自相机位置的原点之间的平移的向量 (XYZ) 值。如何获得 XYZ 距离?
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 代码:
蟒蛇输出:
八度输出:
opencv - solvePnP 可以处理图像框架之外的点吗?
Kontext:我有一个足球场,我正在构建一个用于相机校准的管道(远未实际实现)。摄像机是静态的并且具有该领域的概览。经过一些准备后,我想通过场线的交叉点来计算带有solvePnP的相机的外部参数。但有时相机图像不显示可以轻松计算的场角。但是solvePnP可以处理这些场外的点还是有另一个功能可以解决这个问题?
c++ - 使用solvePnP时如何解决断言错误?
我是 Visual Odometry 的新手,正在学习使用 PnP 解决 VO 的教程。但是,当我运行程序时,出现以下错误:
我的代码如下:
argv[1]是将rgb图像与深度关联起来的文本文件,格式如下:
我已经在网上搜索了解决方案并尝试了所有方法,但仍然是徒劳的。
我真的很感谢你们的帮助,在此先感谢。
**更新:发生异常的输入如下,只有三对:
opencv - 为什么solvePnPRansac返回一个过大的平移向量?
我最近一直在研究视觉里程计。问题是,当我使用 OpenCV 中的 solvePnPRansac 时,它在计算特定一对图片的矩阵时会输出一个过大的平移向量。
我使用 ORB 作为检测器,使用蛮力匹配作为匹配器,并进行了比率测试以获得良好的匹配,使用 PnP 后的关键点如下
我已经将 keypoints_1 中点的坐标转换为相机帧,我给solvePnPRansac的参数如下:
如你所见,平移向量变得很奇怪,怎么这么大是我无法理解的,我也想问最好设置的重投影误差是多少,因为 0.5 是我随机给出的一个数字。
非常感谢您的帮助,在此先感谢大家。