3D scanning with structured light(使用结构光进行三维扫描)

news/2025/11/26 22:11:20/文章来源:https://www.cnblogs.com/DemoFX/p/19274769

只需要一个廉价的投影仪和webcam(网络相机),就能打造一个属于自己的三维扫描仪,这便是结构光三维扫描仪,它利用结构光把不同光照模式投影在物体的表面,进而得到精确的物体形状。整个过程包括投影一个已知的光照模式,通常是条纹或者带状的光,到物体的表面,这些光照模式在遇到物体轮廓边缘的时候就会发生形变,相机就可以在不同的角度扑捉这些形变。

一 投影。

21

结构光的概念实质上是通过特别设计的光照模式把场景点亮,如图所示通常的光照模式有很多种。

22

而我们关注的是二进制编码和格雷码。

23

24

二进制编码和格雷码的相互转换。

二 工作原理。
投影的结构光遇到物体表面发生形变,而这些形变之中包含了物体的形状的深度信息。通过分析条纹的形变,我们使用一种叫做triangulation的算法重建一个高精度的物体三维模型。triangulation通过比较条纹投影到相机所拍摄的图片上像素的位置和角度,就可以计算出物体的顶点信息,

三 处理相机拍摄的图片
因为相机拍摄的图片是一个序列,需要对图片进行处理,为后续的三维重建做准备。对于每一个相机,必须对每一张图片中任意给定的像素确定其是否被投影仪照亮。如果该像素在任何图片中被点亮,则该像素的编码值就比较高,反之则比较小。这里有一个正整数的值用于确定给定像素属于那一个投影行。

25

四 三维重建
相机和投影仪之间的对应关系可以用来重建三维点阵结构。投影仪的像素和相机的图片像素可以通过一种叫做ray-ray triangulation的算法进行计算,以确定模型的顶点位置。

26

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

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

相关文章

求导幂法则 - ukyo-

幂法则 是微积分中用于求幂函数导数的一个基本法则。---1. 公式若f(x) = x^n其中 n 是任意实数常数,则f(x) = n \cdot x^{n-1}---2. 例子1. f(x) = x^2 \quad \Rightarrow \quad f(x) = 2x^{1} = 2x 2. f(x) = x^3 \q…

web框架——flask-异常处理/全局钩子/jinja2引擎

大纲:1.异常处理主动抛出HTTP异常和业务异常 及 两者使用场景捕获异常 @app.errorhandler装饰器及 与 except区别2.全局钩子钩子介绍钩子用法3.jinja2引擎变量的传入 / 输出流程控制 / 仅在for循环中可使用的…

Webpack高级之常用配置项

常用配置项——Mode 默认值是 production(什么都不设置的情况下);可选值有:none | development | production。development:会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 development,为模块和 chunk …

2025年秋招-华为-11月19号开发岗

1.飞船扫描 BFS/DFS。 就是找 \(0\) 的联通块,但该联通块不能碰到边界,\(BFS/DFS\) 搜一下即可。点击查看代码 #include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false)…

求导幂法则, - ukyo-

幂法则 是微积分中用于求幂函数导数的一个基本法则。公式若 f(x) = x^n 其中 n 是任意实数常数,则 f(x) = n \cdot x^{n-1}例子f(x) = x^2 \quad \Rightarrow \quad f(x) = 2x^{1} = 2xf(x) = x^3 \quad \Rightarrow …

详细介绍:从零开始的云原生之旅(七):ConfigMap 和 Secret 配置管理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Day 28 类的定义和手段

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

VMware虚拟机Ubuntu系统问题集

1. 网络图标及设置里的连接选项突然消失解决: 1> sudo gdeit /etc/NetworkManager/NetworkManager.conf 2> 将managed=false改为managed=true,保存退出 3> 删除NetworkManager配置 service NetworkManager …

SetSkeletalMesh优化问题

最近工作的时候遇到了一个CPU的异常开销优化,用Unreal Insights看了一下,SetSkeletalMesh的开销相当大。 主要是三个东西:CreatePhysics、InitAnim、CreateClothing。 尝试了一下定位问题:关闭SkeletalMeshCompone…

从文件结构、索引、信息更新、版本控制等全面对比Apache hudi和Apache paimon

从文件结构、索引、信息更新、版本控制等全面对比Apache hudi和Apache paimon2025-11-26 21:45 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-…

详细介绍:逻辑回归 Logistic 算法从入门到入土

详细介绍:逻辑回归 Logistic 算法从入门到入土pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

NOIP 集训 day5 DP

DP:阶段、状态、转移; 优化:状态是否冗余? 转移是否可优化?Example 斐波那契数列:\(f_i=f_{i-1}+f_{i-2}\). \(f_0=0,f_1=1\).矩阵优化 将 \(f_n,f_{n-1}\) 打包为一个列向量,然后用矩阵快速幂快速求转移矩阵的…

考前复习1

考前复习11.快读 inline int read(){int k=0,f=1;char c=getchar_unlocked();while(c<0||c>9){if(c==-)f=-1;c=getchar_unlocked();}while(c>=0&&c<=9)k=k*10+c-0,c=getchar_unlocked();return k*…

NOIP 模板大赛(没写完)

T701832 滑动窗口 /【模板】单调队列单调队列板子题,所以显然是单调队列。 单调队列就俩操作,一个是加入队尾的时候如果破坏单调性了就把队尾一直 pop 到满足单调性,另一个是如果队首不在范围内就 pop 出去。因为每…

开发指南

Vue3 大屏可视化平台开发指南 一、自定义开发 1. 添加新图表 步骤一:创建图表组件 在 src/components/charts/ 目录下创建新组件: <!-- src/components/charts/MyChart.vue --> <template><div ref=&…

Day25CSS精灵

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…

解码JSON

JSON 核心概念 JSON(JavaScript Object Notation)是 “JavaScript 对象表示法” 的简称,是一种轻量级数据交换文本格式,不依赖任何编程语言。它具有简洁清晰的层次结构,易于人类阅读编写,同时便于机器解析和生成…

项目启动

Vue3 大屏可视化平台项目启动 快速启动 开发模式 npm run dev启动后访问 http://localhost:3000 使用脚本快速启动(Windows): # 使用批处理文件 start.bat# 或使用 PowerShell start.ps1生产构建 npm run build构建…

11/26

今天满课,好累

2025-11-26

CF 构造(1300) Problem - 1867C - Codeforces(交互) #include <bits/stdc++.h> using namespace std; #define LL long long const LL mod = 998244353; const int N=2e5+10; int a[N];void solve() {int n;…