gpt4 book ai didi

python - OpenCV 3.1.0 : Finding the 3D position of a flat plane with known dimensions

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:54 24 4
gpt4 key购买 nike

我有一个平坦的四边形平面,我知道它的尺寸,我可以找到它的轮廓以及 4 个角。 我需要帮助来弄清楚确定其 3D 位置的方法。我已经设法得到它的 3x3 透视变换,看起来像这样:

[[  3.91873630e-02   1.20990983e+00  -2.81213415e+02]
[ 1.21202027e+00 -1.85962357e-15 -3.52697898e+02]
[ 3.83991908e-04 2.52680041e-05 1.00000000e+00]]

(这是 OpenCV 3.1.0,在 python 中,该矩阵只是一帧,因此它可能无法代表所有潜在方向)

我能否根据这些信息确定相机的角度和距离,还是需要进行更多计算?

我不确定你们需要知道什么,所以如果你们需要,我很乐意为你们提供更多信息?

最佳答案

您可以使用 solvePnP 函数来确定四边形的位置和方向 wrt 相机。

你只需要拥有

  • 世界框架中四边形角的三维坐标
  • 对应的像素坐标
  • 相机的内在参数

可以直接使用solvepnp() Opencv的函数。

在输出中,您可以在相机坐标系中获得世界坐标系的姿态。如果你把世界看成四边形本身,你就得到了相机坐标系中四边形的位姿信息(旋转和平移)


C++: bool solvePnP(InputArray objectPoints, InputArray imagePoints, 
InputArray cameraMatrix, InputArray distCoeffs,
OutputArray rvec, OutputArray tvec,
bool useExtrinsicGuess=false, int flags=ITERATIVE );

使用 CV_P3P 参数作为标志,以防你恰好有 4 个点。

关于python - OpenCV 3.1.0 : Finding the 3D position of a flat plane with known dimensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35051060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com