Q:有人用过opencv里面的cvUndistortPoints函数没有?这个函数的输出标定后点坐标非常小,有没有高手能详细解释一下该函数的传参。我是按照官网www.opencv.org里面的方法传参的,可是有问题。
A:在cvUndistortPoints之后还得乘以摄像机的内参数矩阵得出的才是标定后的图像坐标。http://www.opencv.org.cn/index.php/Cv%E7%85%A7%E7%9B%B8%E6%9C%BA%E5%AE%9A%E6%A0%87%E5%92%8C%E4%B8%89%E7%BB%B4%E9%87%8D%E5%BB%BA,(由于贴不出来完整公式,所以我只能标注从哪一行到哪一行)(从x' = x / z y' = y / z 到k1和k2是径向形变系数,p1和p1是切向形变系数)。看了一下该函数是该公式的逆推,再根据原始公式可知应该还要乘以摄像机内参数矩阵才算是矫正后的图片。
也就是说cvUndistortPoints函数校正的是理想点(ideal points,也就是[R|t]M'),要得到真正的图像点必须乘以摄像机内参。但是如果对最后一个参数进行赋值,也就是说给定摄像机校正后的内参,得到的结果也是图像点。
本文深入解析了OpenCV库中的cvUndistortPoints函数,详细解释了其输出标定后点坐标为何非常小,并提供了正确的计算方法。包括公式推导和实际应用示例,帮助开发者解决在图像处理项目中遇到的透视变形校正问题。
函数的参数&spm=1001.2101.3001.5002&articleId=7748141&d=1&t=3&u=83c9f7da314340c488efb060dd5f29e1)
879

被折叠的 条评论
为什么被折叠?



