当前位置: 首页 > 知识库问答 >
问题:

使用solvePnPRansac()进行“解包的值太多”-姿态估计

乐寒
2023-03-14

ValueError:值太多,无法解包

根据文件:

Python:cv2.solvepnpransac(objectPoints,imagePoints,cameraMatrix,distcoeffs[,rvec[,tvec[,useextrinsicguess[,iterationscount[,reprojectionerror[,mininlierscount[,inliers[,flags]]]]]]]]]))rvec,tvec,inliers

(Python 2.7,OpenCV 3b)

共有1个答案

单嘉泽
2023-03-14

异常表示返回的值超过3个。OpenCV3已经改变了很多方法签名,不幸的是没有真正的文档化。我检查了solvepnp.cp,签名为:

bool cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints,
                    InputArray _cameraMatrix, InputArray _distCoeffs,
                    OutputArray _rvec, OutputArray _tvec, bool useExtrinsicGuess,
                    int iterationsCount, float reprojectionError, double confidence,
                    OutputArray _inliers, int flags)

这似乎表明什么都没有改变。但是,在Python中:

solvePnPRansac(...)
solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, confidence[, inliers[, flags]]]]]]]]) 
-> retval, rvec, tvec, inliers

因此尝试一下可能会有帮助:

_, rvecs, tvecs, inliers  = cv2.solvePnPRansac(objp, corners2, mtx, dist)
rvecs, tvecs, inliers  = cv2.solvePnPRansac(objp, corners2, mtx, dist)[:-3]
 类似资料:
  • 目标 在本章中 我们将学习利用calib3d模块在图像中创建一些3D效果。 基础 这将是一小部分。在上一次相机校准的会话中,你发现了相机矩阵,失真系数等。给定图案图像,我们可以利用以上信息来计算其姿势或物体在空间中的位置,例如其旋转方式, 对于平面物体,我们可以假设Z = 0,这样,问题就变成了如何将相机放置在空间中以查看图案图像。 因此,如果我们知道对象在空间中的位置,则可以在其中绘制一些2D图

  • 目标 在这个部分,我们将学习利用 calib3d 模块在图像中创建一些3D效果。 基础知识 这将是一个小的章节。在上一次相机校准的过程中,您已经找到相机矩阵,失真系数等等。给定一个模式图像,我们可以利用上面的信息来计算它的姿态,或者物体在空间中的位置如何旋转,它是如何移动的等等。对于一个平面物体,我们可以假设 Z = 0,这样现在问题就变成了如何将相机放置在空间中来观看我们的图案图像。所以,如果我

  • 问题内容: 运行脚本答案时,出现以下错误: 编码: 任何帮助表示赞赏! 问题答案: 我从OpenCV StackExchange网站获得了答案。回答 答案: 我敢打赌,您正在使用当前的OpenCV的master分支:此处的return语句已更改,请参阅http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_d

  • 问题内容: 我正在编写一个opencv程序,但在另一个stackoverflow问题上找到了一个脚本: 计算机视觉掩盖人的手 运行脚本化答案时,出现以下错误: 编码: 任何帮助表示赞赏! 问题答案: 您正在使用当前的OpenCV的master分支:return语句已更改,请参见 http://docs.opencv.org/trunk/modules/imgproc/doc/structural_

  • 我是Apache Flink的新手,我正在尝试使用Flink CEP动态评估流中的模式。我正在尝试查找执行以下操作的用户登录、addtocart和注销,并且能够检测到模式,但是如果我定义了多个模式,例如登录,注销,则无法检测到模式 下面是我的代码 动作类 模式类 主类 如果我给出一个模式来评估它的输出,如下所示 如果我试图给多个模式进行评估,如下面所示,它不是评估第二个模式,而是建议我如何评估多个

  • 我有以下实体: 我还有一个Spring数据JPA存储库,定义如下: 当我从存储库中执行find-method时,我想急切地加载TextRow。因此,我在上面的代码中引入了NamedEntityGraph-和EntityGraph-注释。 在数据库的文本表中有2个条目,在文本行表中各有3个条目。 我希望findAllByBelongsTo方法返回一个包含两个文本实例的列表。相反,它返回一个包含6个文