我正在尝试通过matlab实现视觉里程计算法。根据{{3}}中的第2步。我需要在特征检测,匹配和运动估计之前进行图像校正。我想我需要像matlab中的函数(http://en.wikipedia.org/wiki/Visual_odometry)一样不失真。在匹配特征后,我可以使用原始的内在和外在参数进行运动估计吗?我认为内在参数是针对失真的图像。
我对Matlab的相机校准工具箱感到困惑。内在矩阵只能将像素转回失真平面。如果我根据维基中的步骤2在特征检测之前首先进行图像校正。我认为原始的内在矩阵会导致一些错误。
答案 0 :(得分:1)
以下是您需要执行的步骤:
您获得的校准包括3x3内在矩阵(K) 未失真的图像,以及失真系数的矢量。
使用K和失真系数来" unistort"图像。
免责声明。您可以在不失真图像的情况下进行VO,但根据使用原始图像的图像失真程度可能会影响特征/描述符检测器。 祝你好运
答案 1 :(得分:0)
首先,matlab已经存在几个视觉测距库。其中之一是http://www.cvlibs.net/software/libviso/
但是,如果您打算自己实施并正在寻找一种纠正图像的方法,您可以使用相机校准matlab工具箱获取内在/外在相机参数:http://www.vision.caltech.edu/bouguetj/calib_doc/
答案 2 :(得分:0)
要使用undistortImage
功能,您需要使用计算机视觉系统工具箱中的Camera Calibrator App或estimateCameraParameters
功能校准相机。