cvUndistortPoints()函数的参数

http://topic.csdn.net/u/20120630/18/59c59fb5-0f2b-4e9d-8eed-9b1a1847dfbd.html?seed=1455020653&r=79128302#r_79128302

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'),要得到真正的图像点必须乘以摄像机内参。但是如果对最后一个参数进行赋值,也就是说给定摄像机校正后的内参,得到的结果也是图像点。

你可能感兴趣的:(cvUndistortPoints()函数的参数)