码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【三维重建】相移法+格雷码


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

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

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

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

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

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

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

    ​

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

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

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

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

    相移法

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

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

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

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

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

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

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

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

    格雷码

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

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

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

    通过阶次可以计算出绝对相位 :\Phi =\varphi +2k\pi

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

    重建

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

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

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

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

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

  • 相关阅读:
    eclipse+tomcat部署javaweb项目教程ssm
    springboot社区人员管理系统的设计与实现毕业设计源码260839
    python遗传算法(应用篇1)--求解一元函数极值
    WebSocket的简单应用
    2 路 2GSPS/2.6GSPS/3GSPS 14bit AD 采集卡/ FMC 子卡 (AD9208/ AD9689)
    Android 10.0 Launcher3定制化之动态时钟图标功能实现
    京东云PostgreSQL在GIS场景的应用分享
    nodejs--开发自己的项目——2——创建保存用户信息的表
    Lumiprobe染料酰肼丨BDP FL 酰肼方案
    Go切片排序
  • 原文地址:https://blog.csdn.net/holle_world_ldx/article/details/136470722
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号