一、前言
此示例说明如何计算两个未校准图像的校正,其中相机内禀函数未知。
立体图像校正将图像投影到公共图像平面上,以使相应的点具有相同的行坐标。此过程对于立体视觉很有用,因为 2-D 立体对应问题被简化为 1-D 问题。例如,立体图像校正通常用作计算或创建立体图像的预处理步骤。
二、步骤
第 1 步:读取立体图像对
阅读同一场景的两张彩色图像,这些图像是从不同位置拍摄的。然后,将它们转换为灰度。匹配过程不需要颜色。
并排显示两个图像。然后,显示一个颜色合成,演示图像之间的像素差异。
图像在方向和位置上存在明显的偏移。校正的目标是转换图像,对齐它们,以便相应的点将出现在两个图像的同一行上。
第 2 步:从每张图片中收集兴趣点
校正过程需要两个图像之间的一组点对应关系。要生成这些对应关系,您将从两个图像中收集兴趣点,然后选择它们之间的潜在匹配项。用于在两个图像中查找类似斑点的特征。
可视化 I1 和 I2 中 <> 个最强 SURF 要素的位置和比例。请注意,并非所有检测到的特征都可以匹配,因为它们要么未在两个图像中检测到,要么由于相机移动而其中一个图像中不存在其中一些要素。
第 3 步:查找推定点对应关系
使用函数查找假定的点对应关系。对于每个 Blob,计算 SURF 特征向量(描述符)。
检索每个图像的匹配点的位置。在合成图像的顶部显示匹配点,该图像组合立体图像。请注意,大多数匹配项都是正确的,但仍有一些异常值。
步骤 4:使用极性约束移除异常值
正确匹配的点必须满足极性约束。这意味着一个点必须位于由其对应点确定的极线上。您将使用该函数计算基本矩阵并找到满足极性约束的内在值。
步骤5:校正图像
使用该函数计算整流转换。这些可用于转换图像,以便相应的点将出现在同一行上。
校正立体图像,并将其显示为立体。您可以使用红青色立体眼镜来查看3D效果。
第 6 步:概括整改过程
上述步骤中使用的参数已设置为适合两个特定的立体图像。要处理其他图像,您可以使用该功能,其中包含自动调整校正参数的附加逻辑。下图显示了使用此函数处理一对图像的结果。
三、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
程序有偿获取:评论区下留言,博主看到会私信你。