视觉测距中的图像校正

时间:2015-05-17 16:28:48

标签: matlab computer-vision camera-calibration matlab-cvst

我正在尝试通过matlab实现视觉里程计算法。根据{{​​3}}中的第2步。我需要在特征检测,匹配和运动估计之前进行图像校正。我想我需要像matlab中的函数(http://en.wikipedia.org/wiki/Visual_odometry)一样不失真。在匹配特征后,我可以使用原始的内在和外在参数进行运动估计吗?我认为内在参数是针对失真的图像。

我对Matlab的相机校准工具箱感到困惑。内在矩阵只能将像素转回失真平面。如果我根据维基中的步骤2在特征检测之前首先进行图像校正。我认为原始的内在矩阵会导致一些错误。

3 个答案:

答案 0 :(得分:1)

以下是您需要执行的步骤:

  1. 使用校准估算相机的内部参数 目标。您可以使用Matlab相机校准工具箱,或 http://www.vision.caltech.edu/bouguetj/calib_doc/
  2. 花点时间执行此步骤并确保校准 正确。校准工具箱将为您提供有关好处的统计数据 校准是。确保重投影错误(和标准 偏差)很小。另外,请务必收集校准目标的图像,该图像覆盖了各种姿势的摄像机视野
  3. 您获得的校准包括3x3内在矩阵(K) 未失真的图像,以及失真系数的矢量。

    使用K和失真系数来" unistort"图像。

  4. 取消保存所有图像并将其保存到磁盘。
  5. 从这一点开始,使用未经过保留的图像(使用矩阵 K)执行VO或其他任务。
  6. 免责声明。您可以在不失真图像的情况下进行VO,但根据使用原始图像的图像失真程度可能会影响特征/描述符检测器。 祝你好运

答案 1 :(得分:0)

首先,matlab已经存在几个视觉测距库。其中之一是http://www.cvlibs.net/software/libviso/

但是,如果您打算自己实施并正在寻找一种纠正图像的方法,您可以使用相机校准matlab工具箱获取内在/外在相机参数:http://www.vision.caltech.edu/bouguetj/calib_doc/

答案 2 :(得分:0)

要使用undistortImage功能,您需要使用计算机视觉系统工具箱中的Camera Calibrator AppestimateCameraParameters功能校准相机。