【三维重建】多频外差相位展开(C++实现)

在结构光三维重建中,通过相移法求解出来的相位是包裹相位(在 [-π/2,π/2] 间成周期性 )

我们想要用相位找到相机与投影仪间的对应像素,就需要进行相位展开,确保每一行的相位值是唯一的。

多频外差是相位展开的一种,接下来我们会介绍它的原理,以及代码。

多频外差的原理是将两种不同频率的相位函数叠加得到一个频率更低的相位函数,设\varphi _1(x), \varphi_2(x)对应的周期分别是T1 =80 ,T2 = 60

\varphi_{12}(x) 是\varphi_2(x),\varphi_2(x)合成的相位

T12 = \frac{T1*T2}{T1-T2}=\frac{80*60}{80-60}=240

\varphi_{12}(x)=\left\{\begin{matrix} \varphi_2(x)-\varphi_1(x) \ \ \ \ \ \ \ \ \ \ if\ \varphi_2(x)>\varphi_1(x) \\ \\ 2\pi - (\varphi_1(x)-\varphi_2(x)) \ \ \ if \ \varphi_2(x)<=\varphi_1(x) \end{matrix}\right.

利用\varphi_{12}(x)求解阶次

如果求取\varphi_1(x)的阶次:

order = (\varphi_{12} *\frac{T12}{T1}-\varphi_1) / 2\pi

如何理解这个公式?

\frac{T12}{T1} = \frac{ab'}{ab}=\frac{b'c'}{bd}=\frac{bc}{bd}

\varphi_{12} *\frac{T12}{T1} 之后,\varphi_{12}, \varphi_1会重合

(\varphi_{12} *\frac{T12}{T1} - \varphi_1) / 2\pi 就能得到\varphi_1的阶次

最后就可以求出绝对相位

\phi_1 = \varphi_1+k *2\pi (k是求得的阶次)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM虚拟机(已整理,已废弃)

# JVM组成 ## 简述程序计数器 线程私有&#xff0c;内部保存class字节码的行号。用于记录正在执行的字节码指令的地址。 线程私有-每个线程都有自己的程序计数器PC&#xff0c;用于记录当前线程执行哪个行号 ## 简述堆 ## 简述虚拟机栈 ## 简述堆栈区别 ## 方法内局部变量是…

SRC挖掘漏洞XSS

Markdown是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;John Gruber&#xff09;。它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的 XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的…

Ubuntu宝塔面板本地部署轻论坛系统HadSky并远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…

5.C转python

新始: 13.列表可被改变(数据),元组不可被改变(数据),二者皆与C中的数组的大致相同 14.创建列表方法: 1.一个[ ]就是一个空的列表 2.使用list函数来创建列表 如: 15.可以在[ ]内部指定列表的初始值,打印方法: 如: 16.在python中,在同一个列表中,可以放不同类型的变量(也可…

Vector Quantized Diffusion Model for Text-to-Image Synthesis

Vector Quantized Diffusion Model for Text-to-Image Synthesis Shuyang Gu, University of Science and Technology of China, Microsoft, CVPR2022, Cited: 340, Code, Paper 1. 前言 我们提出了用于文本到图像生成的矢量量化扩散(Vector Quantized Diffusion Model&…

银河麒麟服务器部署Prometheus+Grafana

#年薪百万# 一、环境准备 操作系统&#xff1a;Operating System: Kylin Linux Advanced Server V10 (Sword) (X86-64) prometheus&#xff1a;prometheus-2.48.0.linux-amd64 grafana&#xff1a;grafana-enterprise-10.2.2.linux-amd64 node_exporter&#xff1a;node_expor…

C语言指针——野指针

目录 概念 原因 1、指针未初始化 2、指针越界访问 3、指针指向的空间释放 如何规避野指针 1、指针初始化 (1)、不知道指针初始化什么地址时&#xff0c;直接初始化为NULL (2)、明确知道初始化的值 2、小心指针越界 3、指针指向空间释放即时置NULL 4、指针使用之前检查…

uni-app 微信小程序之自定义中间圆形tabbar

文章目录 1. 自定义tabbar效果2. pages新建tabbar页面3. tabbar 页面结构4. tabbar 页面完整代码 1. 自定义tabbar效果 2. pages新建tabbar页面 首先在 pages.json 文件中&#xff0c;新建一个 tabbar 页面 "pages": [ //pages数组中第一项表示应用启动页&#xff…

Day44| Leetcode 518. 零钱兑换 II Leetcode 377. 组合总和 Ⅳ

今天进入完全背包。 Leetcode 518. 零钱兑换 II 题目链接 518 零钱兑换 II 由于是可以选取多个元素&#xff0c;所以是完全背包&#xff0c;要注意在遍历顺序中前序遍历&#xff0c;其他的和前面的目标数这个题目类似&#xff0c;要理解dp[j]dp[j-nums[i]]的来源。&#xff…

Nmap脚本的安全性

Nmap脚本的安全风险和漏洞 Nmap脚本&#xff08;Nmap Scripting Engine&#xff0c;NSE&#xff09;是一款功能强大的网络扫描工具&#xff0c;可以通过编写自定义脚本来扩展其功能&#xff0c;实现更加精细的渗透测试。然而&#xff0c;在使用Nmap脚本时&#xff0c;也存在一些…

hive sql子单元查找组合单元信息

1. 背景 店铺卖东西&#xff0c;会将一部分子商品&#xff08;单个商品&#xff0c;sku 粒度&#xff09;打包到一起&#xff0c;变成一个组合商品去售卖。 用户买东西&#xff0c;可能会买多个组合商品。 数仓这边拿到的数据&#xff0c;全是已经拆分到子商品的订单商品数据…

Ubuntu宝塔面板本地部署Emlog个人博客网站并远程访问【内网穿透】

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…

DDoS高防IP到底是什么?

DDoS高防IP是提供一个带防御的IP&#xff0c;主要是针对网络中的DDoS攻击进行保护&#xff0c;是针对互联网服务器遭受大流量的DDoS攻击后&#xff0c;导致服务不可用的情况下&#xff0c;用户可以通过配置高防IP&#xff0c;将攻击流量引流到高防IP上&#xff0c;从而确保源站…

面试华为测试岗,收到offer后我却毫不犹豫拒绝了....

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司&#xff0c;一干就是2年。我想说的是&#xff0c;但凡有点机会&#xff0c;千万别去外包&#xff01; 在深思熟虑过后&am…

圣诞将至—C语言圣诞树代码来啦

文章目录 圣诞将至—C实现语言圣诞树源码 圣诞将至—C实现语言圣诞树 圣诞树 源码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <math.h> #include <stdlib.h> #include <windows.h> #include <time.h> #define PI 3.14159265…

电磁继电器应用要点及保持与自锁技术经验总结

🏡《电子元器件学习目录》 目录 1,概述2,电磁继电器2.1,结构与原理2.2,分类3,磁保持继电器结构与工作原理4,自锁继电器结构与工作原理5,总结1,概述 继电器是一种通过小电流控制大电流运作的自动开关。其具有放大控制信号,扩大控制范围,综合信号和遥控监测的功能。继…

基于curl 使用http多线程下载大文件

一、获取文件大小 int64_t CHttpClient::GetFileSize(const std::string &url) {auto curl curl_easy_init();if (!curl){curl_easy_cleanup(curl);return -1;}double filesize -1; //文件大小curl_easy_setopt(curl,CURLOPT_URL, url.c_str());curl_easy_setopt(curl, …

《算法面试宝典》--深度学习常见问题汇总

第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 多层感知机中的特征神经元模型称为感知机,由Frank Rosenblatt于1957年发明。 其中 x 1 x_1 x

Docker快速入门(编译源码辅助技)

什么是docker&#xff08;⭐⭐⭐&#xff09; https://www.cnblogs.com/Can-daydayup/p/15559341.html 安装WSL官方教程&#xff08;⭐⭐⭐⭐&#xff09; https://codefellows.github.io/setup-guide/system-setup/windows/windows-10.html 点灯&#xff08;⭐⭐⭐⭐&#x…

Java网络编程 *TCP与UDP协议*

网络编程 什么是计算机网络? 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统 简单来说就是把不同地区的计算机通过设备连接起来,实现不同地区之前的数据传输 网络编程是干什么的? 网络…