17.立体匹配——匹配两个图 Matlab实战,立体效果_3
匹配两个图 Matlab实战
让我们尝试实现一种非常简单的方法来匹配来自两个图像带的相应区域。首先,回忆一下查找最佳匹配问题。给定一个图像贴片和一个贴片,您的任务是找到贴片在贴片中的最佳x位置。您可以自由使用这个参考实现,也可以使用自己的实现。
现在,您的任务是匹配两个条贴片。您将获得两个条贴片,左条贴片和右条贴片,以及块大小为b的贴片。
请注意,您只考虑完整的、不重叠的块。这意味着如果你的贴片是640宽,而块大小是100,那么你只有6个整块。这些条带的最后40列没有使用。返回视差值向量,每个块对应一个视差值。all right。下面是一些用于测试的代码。
我们使用与以前相同的一对花卉图像,
并从每个图像中提取一个条带。
上面这个是左边的图,下面这个是右边的图。现在我们应该能够通过传入两个带和块大小来调用函数。
那么,如何解决这个问题呢? 我们先算出方块的个数。因为我们只对整块感兴趣,所以我们使用 floor函数 来舍入。
okay,现在将视差初始化为行向量。
对于每个块,我们计算左边缘的 x 坐标。注意 MATLAB 和Octave从1 开始索引。
使用此方法从左侧条带中提取图像贴片。
现在在右边的条带中找到最匹配的说明。
最后,将视差计算为左右图像中的展示之间的差异。
okay? 让我们运行。
六个视差值,如预期,但是它们没有多大意义,不是吗? 我们试着画出它们。
Okay,那么第一个block位置上的0是什么意思呢?
它只是说,对于左边图像中的块的最佳匹配是在右边图像中的相同位置找到的。
那么2号位置的峰值呢?
这说明第二个方块移动了很多。你可以直观地验证一下。
查看左侧条带中的此特征及其在右侧条带中的位置。不同的区块移动的数量显然不同。
现在,这些视差值如何与场景的深度相关?想一下这种简单方法的缺点是什么。
立体效果
我们已经看了一下以简单方式完成的匹配(Correspondence)。事实上,简单时尚是你们作业中要做的,我想看几个稍微复杂一点的方法,它们更接近立体视觉的艺术状态。
有几种方法可以做到这一点。有一堆立体对它们都有已知的深度地面真值。这是筑波大学的一个众所周知的场景(如图),右边的图像是实际的深度。这些东西可以以多种方式产生。你使用激光扫描仪。另一种非常精确的匹配方法。但这个想法是,如果你在开发一个立体算法或者你在写一篇论文什么的,你有一个场景,你可以说,我知道实际值应该是多少。
我之前展示给你们的方法类型,是基于窗口的匹配,在左边我们有基于窗口匹配的最佳结果(如图1)。右边是基本事实。这里我们用的是假彩色图像。这样更容易看到错误。如果一切都只是灰色值和差异,那么就很难看到事情发生了怎样的变化。你会注意到它做得很好。你知道,模特的头在其他东西前面,但它的边缘确实很糟糕。后面的这个摄像机,哎呀,颜色太糟糕了,后面的这个摄像机差不多都被吃光了(如图2),别管这里发生了什么(如图3)。所以它有一些一般的困难,我们想做的是看看我们是否能更接近基本的真相解决方案。
1 2
3
所以更好的解决方案不仅仅是单个匹配估计,all right? 本质上他们想做的是,他们想优化视差分配的集合,在某种意义上,是连带的,也就是说,我不只是把这个像素分配到某个地方,然后这个像素是独立的。我想把所有的分配放在一起考虑,想出一个最优解。
这可以用两种不同的方法,至少两种不同的方法。一种是一次做一个扫描线。所以我们还是一次画一条线。但对于这一行的所有像素,我们要考虑的是我们要怎么做分配。然后我们对每个扫描线都这样做。然后是更现代的方法,那些得到更多改进的方法,它们实际上是在一个完整的二维网格上完成的。所以我们不只是在扫描线上思考,而是在垂直方向上思考。
我们来讨论一下扫描线方法。这是Kuva大学的图片,我们有两个强度分布图,左边和右边,all right? 为了精确起见,这里有一个一维信号,这里也有一个一维信号(如图2),我们必须将这里的每个像素与这里的某个像素匹配(如图3),all right? 但是我们想要找到的是我们想要找到最好的整体匹配,也就是所有的匹配,我们想要最好的集合(如图4)。
1 2
3 4
有编过程的人的代码,比那些无知的人使用的软件更有价值。
17.立体匹配——匹配两个图 Matlab实战,立体效果_3相关推荐
- 17.立体匹配——匹配问题,好区域匹配 测验,窗口大小的影响,遮蔽(Occlusion),顺序约束_2
目录 匹配问题 好区域匹配 测验 窗口大小的影响 遮蔽(Occlusion) 顺序约束 匹配问题 好了,我们继续研究这个对应问题.这里我们有两张照片(如图),这是Andrew Zisserman提供的 ...
- 第 12 章 基于块匹配的全景图像拼接--Matlab深度学习实战图像处理应用
第 12 章 基于块匹配的全景图像拼接–Matlab深度学习实战图像处理应用GUI实现 效果如图所示 完整案例 主函数文件 Gui_Main.m文件 function varargout = Gui_ ...
- MATLAB代码: 合并两张图
MATLAB 合并两张图,要求大小相同的图,我这里合并两张相同的图. image = imread('docia_one.png') %读取图片 c = [image, image] %图像拼接到矩阵 ...
- MATLAB画图并将两个图排列在一起
怎样用MATLAB进行画图呢? 例如我要画y1=sin(x); y2=cos(x);并把他们放在两个不同的框并列起来,MATLAB提供了函数plot(x,y1):画图 subplot(1,2,1) : ...
- matlab仿真图同时画两张,matlab怎么把两个图放在一起
1.matlab怎么把两个图放在一起 MATLAB中有hold on和hold off指令,在Command Window中使用可以实现同时让两个图出现在一起. hold on的意思是打印的图形会叠加 ...
- 【指纹识别】基于模板匹配算法指纹识别匹配门禁系统matlab源码
一.简介 1 指纹识别的引入和原理 1.1 指纹的基本知识 指纹,由于其具有终身不变性.唯一性和方便性,已几乎成为生物特征识别的代名词.指纹是指人的手指末端正面皮肤上凸凹不平产生的纹线.纹线有规律的排 ...
- MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测
MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测 摘要 近些年,随着计算机技术的不断发展,神 ...
- 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...
- 卡尔曼滤波器求速度matlab,卡尔曼滤波器算法浅析及matlab实战
原标题:卡尔曼滤波器算法浅析及matlab实战 作者:Liu_LongPo 出处:Liu_LongPo的博客 卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的 ...
最新文章
- 使用 Flash Builder 的 Apple iOS 开发过程
- 求x从0到n,f(x)=x^2+1的和
- 演讲实录丨CAAI名誉副理事长杨强教授:人工智能的金融实践
- 已知x=python是一种非常好的编程语言-为什么用Python,高级的Python是一种高级编程语言...
- PyTorch模块类
- InputFormat和OutPutFormat
- [html] iframe如何自动调整高度?
- Oracle10g数据库的树立
- 消息人士:苹果正与比亚迪宁德时代洽谈电动汽车电池供应事宜
- 文件的下载学习笔记:
- java如何导入和导出ex_SpringBoot中关于Excel的导入和导出
- win7 删除 未知账户(s-1-5-21-2000478354
- 教育培训机构拼团招生小程序公众号
- opencv 将视频流转换成帧图像(支持asf,mp4,avi)
- cdr转换成html格式,cdr生成对象
- windbg命令解释
- 剑网三游戏延迟太高卡顿进不去怎么处理?
- js中的颜色对应的常量代码code
- 2021年广西省安全员C证免费试题及广西省安全员C证考试试卷
- 车辆监控php原码下载,物流车辆视频监控系统解决方案
热门文章
- 【华为云•云享专家•原创分享计划】分享好文赢好礼
- javascript基础修炼——前端路由的基本原理
- 华为云新加坡峰会发布CloudAI创新实验室,四大核心优势助力智能化升级
- Spark之SparkStreaming的DStream操作
- 红橙Darren视频笔记 状态栏设置颜色 获取高度 设置全屏
- 红橙Darren视频笔记 view的绘制流程(下)基于API27
- 基于Matlab的三维胖射线追踪算法
- C++ STL容器vector篇(五) vector容器常用初始化操作总结(一维/二维)
- 剑指offer06:从尾到头打印链表
- 使用switch实现多选