美文网首页
无人驾驶小课堂 - OpenCV 中的图像校正

无人驾驶小课堂 - OpenCV 中的图像校正

作者: Rita_曾小辰 | 来源:发表于2019-05-06 21:34 被阅读0次

    1. 常见的图片畸变

    无人驾驶摄像头/照相机镜头往往会有两种形式的图像变形,径向畸变(Radial Distortion)和切向变形(Tangetial Distortion)。前者是由于镜头成像的过程中,边缘造成的损耗。后者是因为镜头本身存在角度造成的倾角误差。

    径向畸变 切向畸变

    2. 畸变矫正

    由于镜头畸变不可避免,因此需要矫正。在矫正之时,我们需要建立原图与矫正图像之间的关系,并找到这组关系的系数,通过一组标准系数,我们就获得了镜头的矫正方法。

    通常来说,我们可以通过测量一组黑白格(如下图左)来获得这个矫正系数。当获得镜头拍摄的黑白格,只要找出其中的同等位置的格子交界处,并计算两者间变化的关系,就可以计算得到变形的系数。

    左:标准黑白格;右:畸变

    如果使用 OpenCV 就可以简易获取其中的黑白交界处,如cv2.findChessboardCorners() 和 cv2.drawChessboardCorners() 函数。

    代码如下:

    Tips:gray.shape[::-1] 是返回灰度图的长宽,代表 反置全部数组;

              color.shape[1::-1] 是返回彩色图的长款,代表 反置前两个元素;

    3. 图像矫正

    在矫正了畸变之后,我们就可以把图像变形回我们需要的图像了。在这里,我们使用图像点来帮助把点矫正回原来的位置,来拉平图像,使用的函数为 cv2.getPerspectiveTransform() 和 cv2.warpPerspective() 。

    修正结果如下:

    左:修正前;右:修正后;

    代码如下:

    相关文章

      网友评论

          本文标题:无人驾驶小课堂 - OpenCV 中的图像校正

          本文链接:https://www.haomeiwen.com/subject/obncoqtx.html