cv::undistortPoints输出点不正确问题

本文介绍了OpenCV中的undistortPoints函数,用于根据相机参数和观测点坐标计算无畸变的实际位置。该函数处理单目和双目摄像头,可选择归一化或像素坐标,用于消除图像畸变以获取真实像素坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

undistortPoints()函数介绍

文档链接: opencv官方文档
undistortPoints()函数作用:根据相机参数和观测点坐标位置计算实际坐标位置。
接口:

void cv::undistortPoints(InputArray src,
OutputArray dst,
InputArray cameraMatrix,
InputArray distCoeffs,
InputArray R = noArray(),
InputArray P = noArray() 
)	

简介:
在这里插入图片描述

注意问题

  1. 观测点的shape,即src的shape是1xNx2或Nx1x2;
  2. R参数是用在双目里的,单目里置为空矩阵
  3. P矩阵值为空时,得到的结果的点坐标是相机的归一化坐标( x , y ),这时候数值就会明显很小;
    P矩阵值不为空,设置为相机内参,得到的结果点坐标是像素坐标(正常的图像坐标)
    会进行以下计算:
    u ′ ← x f ′ x + c x ′ v ′ ← y f y ′ + c y ′ \begin{aligned} & u^{\prime} \leftarrow x f^{\prime}{ }_x+c_x^{\prime} \\ & v^{\prime} \leftarrow y f_y^{\prime}+c_y^{\prime} \end{aligned} uxfx+cxvyfy+cy
    这时候得到的才是特征点消畸变后的像素坐标。
    我们通常使用时是想得到在同一个相机下的真实像素,所以P设置为内参就可以了。

对应官方文档的这块内容:
在这里插入图片描述
参考连接: opencv undistortPoints函数介绍和注意

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值