gpt4 book ai didi

opencv - OpenCV 中 undistortPoints() 和 projectPoints() 的区别

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:08 30 4
gpt4 key购买 nike

根据我的理解,undistortPoints 在扭曲图像上获取一组点,并计算它们的坐标在同一图像的未扭曲版本上的位置。同样,projectPoints 将一组对象坐标映射到它们对应的图像坐标。

但是,我不确定 projectPoints 是否将对象坐标映射到失真图像(即原始图像)或未失真图像(直线)上的一组图像点?

此外,undistortPoints 的 OpenCV 文档指出,“该函数对 projectPoints() 执行反向转换”。您能解释一下这是怎么回事吗?

最佳答案

引自 3.2 文档 projectPoints() :

Projects 3D points to an image plane.

The function computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters.

你有参数distCoeffs:

If the vector is empty, the zero distortion coefficients are assumed.

在没有失真的情况下,方程是:

projection

K 内在矩阵和[R | t] 外部矩阵或将对象或世界坐标系中的点转换为相机坐标系的变换。


对于 undistortPoints() , 你有参数 R:

Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by cv::stereoRectify can be passed here. If the matrix is empty, the identity transformation is used.

反向变换是为 2D 图像点 ([u, v]) 计算归一化相机帧 ([x, y, z) 中相应的 3D 点的操作=1]) 使用内部参数。

利用外部矩阵,可以得到相机坐标系中的点:

enter image description here

归一化的相机帧除以深度得到:

enter image description here

假设没有畸变,图像点为:

enter image description here

假设没有失真的“逆向转换”:

enter image description here

关于opencv - OpenCV 中 undistortPoints() 和 projectPoints() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361959/

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