我无法访问您在问题中写的链接上的分页(它要求输入用户名和密码),因此我假设您的链接页面与我在此引用的页面 http://www.mathworks.it/it/help/vision/ref/undistortimage.html 的内容相同:
J = undistortImage(I,cameraParameters,interp) 从输入图像I 中移除镜头失真,并指定
用于输入图像的函数的插值方法。
输入参数
I — 输入图片
cameraParameters — 存储相机参数的对象
interp — 插值法
'linear'(默认)| 'nearest' | 'cubic'
函数使用的插值方法
输入图像。 interp 输入插值方法可以是
字符串、'nearest'、'linear' 或 'cubic'。
此外,我假设您指的是这些论文:
张正友。一种灵活的相机校准新技术。 模式分析和机器智能,IEEE Transactions on,2000 年,22.11:1330-1334。
海基拉,珍妮;西尔文,奥利。具有隐式图像校正的四步相机校准程序。在:计算机视觉和模式识别,1997 年。Proceedings.,1997 年 IEEE 计算机学会会议。 IEEE,1997 年。 1106-1112。
我在Zhang和Heikkila and Silven这两个pdf文档中搜索了“插值”这个词,没有找到任何关于他们使用的插值方法的直接说明。
据我所知,一般来说,相机校准方法关注的是如何估计内在、外在和镜头畸变参数(所有这些参数都在 Matlab 的undistortImage 函数的输入参数cameraParameters 内);插值方法是另一个问题的一部分,即“几何图像变换”问题。
我引用OpenCV's page Geometric Image Transformation (我稍微修改了原文,省略了一些细节并添加了一些定义,我假设您正在使用灰度图像):
本节中的函数执行各种几何
二维图像的变换。他们不改变图像内容,但
变形像素网格并将这个变形的网格映射到目标
图片。事实上,为了避免采样伪影,映射是在
相反的顺序,从目的地到源。也就是说,对于每个
目标图像的像素 (x, y),函数计算
源图像中相应“供体”像素的坐标和
复制像素值:
dst(x,y) = src(f_x(x,y), f_y(x,y))
在哪里
dst(x,y) 是目标图像中位于行x 和列y 的像素的灰度值
src(x,y)是源图像中位于行x和列y的像素的灰度值
f_x 是将行 x 和列 y 映射到新行的函数,它只使用坐标而不是灰度。
f_y 是将行 x 和列 y 映射到新列的函数,它只使用坐标而不是灰度。
几何变换的实际实现,来自
最通用的 remap() 和最简单最快的 resize()
,需要用上式解决两个主要问题:
• 外推不存在的像素。与过滤类似
上一节中描述的函数,对于某些 (x,y) ,要么
f_x(x,y) 或 f_y(x,y) 之一,或两者都可能落在
图片。在这种情况下,需要使用外推法。
OpenCV 提供与
过滤功能。此外,它还提供了方法
边界透明。这意味着对应的像素在
目标图像根本不会被修改。
• 像素插值
价值观。通常f_x(x,y) 和f_y(x,y) 是浮点数。这
表示<f_x, f_y> 可以是仿射的,也可以是
透视变换或径向镜头畸变校正,以及
很快。因此,分数坐标处的像素值需要是
取回。在最简单的情况下,坐标可以只是四舍五入
到最接近的整数坐标,对应的像素可以是
用过的。这称为最近邻插值。然而,一个
使用更复杂的方法可以获得更好的结果
插值方法,其中多项式函数适合一些
计算像素(f_x(x,y), f_y(x,y)) 的邻域,然后
将(f_x(x,y), f_y(x,y)) 处的多项式的值作为
插值像素值。在 OpenCV 中,您可以在几个
插值方法。有关详细信息,请参阅 resize()。
有关“软”介绍,另请参见 Cambridge in colour - DIGITAL IMAGE INTERPOLATION。
假设您需要 x=20.2 y=14.7 处的像素灰度级,因为 x 和 y 是小数部分不为零的数字,您需要以某种方式“发明”(计算)灰度级.在最简单的情况下('nearest' 插值),您只需说(20.2,14.7)处的灰度级是您在(20,15)处检索到的灰度级,它被称为“最近”,因为 20 是最接近的整数值20.2 和 15 是最接近 14.7 的整数值。
在 (bi)'linear' 插值中,您将结合 (20,14)、(20,15)、(21, 14), (21,15);有关如何计算组合的详细信息,请参阅具有 a numeric example 的 Wikipedia page。
(bi)'cubic' 插值考虑了 16 个像素的组合,以便计算 (20.2,14.7) 处的值,请参阅Wikipedia page。
我建议您尝试所有三种方法,使用相同的输入图像,并查看输出图像的差异。