【三维重建】相移法+格雷码

这篇具有很好参考价值的文章主要介绍了【三维重建】相移法+格雷码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章介绍一种稠密点云的获取方式——条纹结构光三维重建算法。

在学习此算法前,我们需要对基于视觉的三维重建算法有一定了解。

需要了解什么是相机模型、相机标定以及三角化的相关知识。

【三维重建】摄像机几何-CSDN博客

【三维重建】摄像机标定(张正友相机标定法)_相机内参矩阵和外参矩阵怎么获取-CSDN博客

【三维重建】三角化-CSDN博客

        当我们得到两个相机的内参、外参后,就能通过两个视图的匹配点计算出该点的三维坐标。但是一般的特征匹配算法(SIFT、SURF)只能提取特征点,并且只有正确匹配才能得到正确的三维坐标。因为两个视图上能够成功匹配的点比较少, 因此通过这种方式获得的点云是稀疏的。

【三维重建】相移法+格雷码,算法

        结构光的重建算法和三角化是一样的,不一样的是结构光算法通过向物体主投影带有特殊编码的图案,提高了两个视图成匹配点的个数,可以得到更多的三维点。

下面介绍一种常见的结构光算法:相移法+格雷码

单目结构光系统由一个相机和一个投影仪组成。我们可以把投影仪看作是一个逆相机,双目视觉中,需要成功得到两个相机视图中的匹配点对儿,那么在单目结构光系统我们就需要得到相机和投影视图的匹配点对儿。

知道了做什么,接下我们介绍一下怎么做?如何得到相机和投影视图的匹配点对儿?

相移法

首先,需要先生成待写入投影仪的理想N步相移条纹

通常对于N步相移来说,生成第k幅条纹图案的公式如下:

【三维重建】相移法+格雷码,算法

这个公式是一个正弦函数,k的增加可以看作正弦函数向左移动的过程。

【三维重建】相移法+格雷码,算法

对这个曲线的值进行repeat操作,就能生成下面幅图,图的每一行对应的就是正弦函数的值

【三维重建】相移法+格雷码,算法

根据实际需要设置相应的参数就能生成理想的相移图。

将相移图投影到物体上,再由相机捕获的图叫做实际相移图。

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法

通过N幅相移图,就能计算出每个像素点的相位值

【三维重建】相移法+格雷码,算法

相机与投影仪就能通过相位值建立联系

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法

格雷码

通过相移法解出的相位值是成周期状的,我们需要的是每一行的相位值是唯一的。

【三维重建】相移法+格雷码,算法

通过格雷码进行相位展开,得到唯一的相位值。

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法

通过投影格雷码就能够计算出每一个像素的阶次k,阶次反映的是当前像素在第几个周期。

通过阶次可以计算出绝对相位 :【三维重建】相移法+格雷码,算法

绝对相位在每一行中是唯一的。

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法

重建

通过归一化,将相位值的取值范围变成0-1之间,知道当前像素的相位值,就能知道当前像素在投影仪中是哪一列。

【三维重建】相移法+格雷码,算法

通过相机-投影仪标定可以得到相机与投影仪的投影矩阵

【三维重建】相移法+格雷码,算法

投影矩阵反应了世界坐标到像素坐标的映射关系。

【三维重建】相移法+格雷码,算法

通过绝对相位图能够知道,相机视图的像素坐标 以及投影仪视图的像素的横坐标

通过联立前面两个公式即可求得三维坐标:

【三维重建】相移法+格雷码,算法

【三维重建】相移法+格雷码,算法文章来源地址https://www.toymoban.com/news/detail-838806.html

到了这里,关于【三维重建】相移法+格雷码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

领支付宝红包 赞助服务器费用

相关文章

  • FPGA中有限状态机的状态编码采用格雷码还是独热码?

            有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前

    2024年02月05日
    浏览(63)
  • verilog手撕代码5——计数器(置位、加减、环形、扭环形、格雷码计数器实现)

    2023.5.12 编写一个十六进制计数器模块,计数器输出信号递增每次到达0,给出指示信号 zero ,当置位信号 set 有效时,将当前输出置为输入的数值 set_num 。 注意 :这里zero=1和num=0是同一拍输出的,按道理如果根据num=0,然后去输出zero=1应该延迟一拍。所以这里考虑将number延迟一

    2024年02月07日
    浏览(44)
  • 10.31一些代码分析,香浓展开,移位器(桶形多位),二进制转格雷码

     always的block之间,采用并行执行 always之内,采用非阻塞赋值,为顺序执行 这个把使能信号和W信号组合在一起,进行case语句,即只有合并信号最高位为1时,才进行操作 always后面要写@,assign不用 这没有期望的边沿,就是只要发生变化就会触发 加上posedge,negedge就可以标记期望

    2024年02月07日
    浏览(45)
  • 结构光三维重建(四步相移&多频外差法)matlab实现(一)

    前言:这里主要梳理自己在理解四步相移法和三频外差法,以及用MATLAB实现条纹图生成,四步相移求相位主值,三频外差相位展开(解包裹)的过程。 废话不多说,一些基本思想概念可以看下面参考文章,里面有详细介绍。这里主要对遇到的问题展开阐述。 由于用周期性变

    2024年02月16日
    浏览(33)
  • 三维重建之条纹投影结构光(二)——四步相移+三频外差法

            接上文:         针对上文思路进行验证,本篇博客主要对相位进行求解,首先,对上面博客的理论进行复述,然后包括相位主值的计算和相位展开。          通过一帧变形条纹 图样是很难得到高精度的相位Φ(x,y),需要采用相移算法来准确测定相位。

    2024年02月08日
    浏览(59)
  • 三维重建SfM算法

    三维重建的 SfM (Structure from Motion) 算法是通过多张二维图片来重建三维场景的算法。 特征点提取 在这个步骤中,需要对每张图片提取出一些特征点,并计算它们的描述子。在特征点提取的过程中,可以使用 SIFT,SURF 等算法。一般来说,一个好的特征点需要具备旋转不变性、

    2024年02月02日
    浏览(27)
  • 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置

    本人书写本系列博客目的是为了记录我学习三维重建领域相关知识的过程和心得,不涉及任何商业意图,欢迎互相交流,批评指正。 MVS(多视点立体视觉,Multi-view stereo)能够单独从图像中构造出高度细节化的3D模型,采集一个庞大的图像数据集,用其来构建出一个用来解析

    2024年01月15日
    浏览(34)
  • 基于Nerf的三维重建算法Neus初探

    目录 介绍 安装 训练开源数据 训练自己的数据 作者提出了一种新的神经表面重建方法,称为NeuS,用于从2D图像输入中以高保真度重建对象和场景。在NeuS中,我们建议将曲面表示为有符号距离函数(SDF)的零级集,并开发一种新的体绘制方法来训练神经SDF表示。我们观察到,

    2024年02月09日
    浏览(36)
  • 三维重建——商汤NeuralRecon算法详解与论文解读

    论文地址:https://arxiv.org/abs/2104.00681 代码链接见文末 代码详解: https://blog.csdn.net/qq_52053775/article/details/128880856         三维重建,就是将2D的图片信息重建为3D的信息。应用领域广泛。可以应用于原型设计、虚拟现实等。 (1) 相机成像         相机成像一般是小孔成像的原

    2024年02月13日
    浏览(25)
  • 基于MVS的三维重建算法学习笔记(三)— 立体匹配概述

    本人书写本系列博客目的是为了记录我学习三维重建领域相关知识的过程和心得,不涉及任何商业意图,欢迎互相交流,批评指正。 在之前的博客中简单介绍过立体匹配,它是MVS稠密重建中的重要环节,而在这篇博客中,将详细的介绍立体匹配的相关概念,其中详细的过程和

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包