OpenCV:关于 solvePnP 的困惑
OpenCV: Confusion about solvePnP
我对 OpenCV 中 solvePnP 函数的使用有点困惑。
我有相机内部参数的矩阵,我已经确定了图像中的一些关键点,我正在尝试估计校准的外部参数。
solvePnP 的文档说:
cv2.solvePnP(objectPoints, imagePoints, cameraMatrix,
distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) → retval, rvec, tvec
我猜我的 imagePoints
参数是我检测到的关键点。这些艺术以像素为单位指定为 (x1, y1), (x2, y2), (x3, y3)
.
我对 objectPoints 完全困惑。所以,文档说:
objectPoints – Array of object points in the object coordinate space,
3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points.
vector<Point3f> can be also passed here.
如何从我的图像点生成这些对象点?这里说的对象坐标space是什么意思?
cv2.solvePnP()
方法一般用在姿态估计中,换句话说,它可以用来估计3D物体在2D图像中的方向。因此,为此您需要在对象的 3D 模型中标记一些关键点 (objectPoints
),并在 2D 图像中检测这些关键点 (imagePoints
)。
您可以参考此,了解此技术在人脸姿态估计中的应用。
我对 OpenCV 中 solvePnP 函数的使用有点困惑。
我有相机内部参数的矩阵,我已经确定了图像中的一些关键点,我正在尝试估计校准的外部参数。
solvePnP 的文档说:
cv2.solvePnP(objectPoints, imagePoints, cameraMatrix,
distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) → retval, rvec, tvec
我猜我的 imagePoints
参数是我检测到的关键点。这些艺术以像素为单位指定为 (x1, y1), (x2, y2), (x3, y3)
.
我对 objectPoints 完全困惑。所以,文档说:
objectPoints – Array of object points in the object coordinate space,
3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points.
vector<Point3f> can be also passed here.
如何从我的图像点生成这些对象点?这里说的对象坐标space是什么意思?
cv2.solvePnP()
方法一般用在姿态估计中,换句话说,它可以用来估计3D物体在2D图像中的方向。因此,为此您需要在对象的 3D 模型中标记一些关键点 (objectPoints
),并在 2D 图像中检测这些关键点 (imagePoints
)。
您可以参考此