基于matlab对于未校准立体图像校正(附源码)

一、前言

此示例说明如何计算两个未校准图像的校正,其中相机内禀函数未知。

立体图像校正将图像投影到公共图像平面上,以使相应的点具有相同的行坐标。此过程对于立体视觉很有用,因为 2-D 立体对应问题被简化为 1-D 问题。例如,立体图像校正通常用作计算或创建立体图像的预处理步骤。

二、步骤

第 1 步:读取立体图像对

阅读同一场景的两张彩色图像,这些图像是从不同位置拍摄的。然后,将它们转换为灰度。匹配过程不需要颜色。

并排显示两个图像。然后,显示一个颜色合成,演示图像之间的像素差异。

图像在方向和位置上存在明显的偏移。校正的目标是转换图像,对齐它们,以便相应的点将出现在两个图像的同一行上。

第 2 步:从每张图片中收集兴趣点

校正过程需要两个图像之间的一组点对应关系。要生成这些对应关系,您将从两个图像中收集兴趣点,然后选择它们之间的潜在匹配项。用于在两个图像中查找类似斑点的特征。

可视化 I1 和 I2 中 <> 个最强 SURF 要素的位置和比例。请注意,并非所有检测到的特征都可以匹配,因为它们要么未在两个图像中检测到,要么由于相机移动而其中一个图像中不存在其中一些要素。

第 3 步:查找推定点对应关系

使用函数查找假定的点对应关系。对于每个 Blob,计算 SURF 特征向量(描述符)。

检索每个图像的匹配点的位置。在合成图像的顶部显示匹配点,该图像组合立体图像。请注意,大多数匹配项都是正确的,但仍有一些异常值。

步骤 4:使用极性约束移除异常值

正确匹配的点必须满足极性约束。这意味着一个点必须位于由其对应点确定的极线上。您将使用该函数计算基本矩阵并找到满足极性约束的内在值。

步骤5:校正图像

使用该函数计算整流转换。这些可用于转换图像,以便相应的点将出现在同一行上。

校正立体图像,并将其显示为立体。您可以使用红青色立体眼镜来查看3D效果。

第 6 步:概括整改过程

上述步骤中使用的参数已设置为适合两个特定的立体图像。要处理其他图像,您可以使用该功能,其中包含自动调整校正参数的附加逻辑。下图显示了使用此函数处理一对图像的结果。

三、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序有偿获取:评论区下留言,博主看到会私信你。

文章来源地址https://uudwc.com/A/9LXaz

原文地址:https://blog.csdn.net/weixin_45770896/article/details/131525708

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年07月08日 20:19
桥接模式:如何实现支持不同类型和渠道的消息推送系统?
下一篇 2023年07月08日 20:19