结构光三维重建之光栅图像相位解算(MATLAB)
1. 背景介绍
相位测量轮廓术(Phase Measurement Profilometry, PMP)基本思想是通过有一定相位差的多幅光栅条纹图像计算每个像素点的相位值,根据相位值计算物体的深度信息。对于双目视觉系统,由相位到深度计算的过程,可以是先进行相位匹配获取左右图像上的同名点,然后利用多片空间前方交会得到物体点三维坐标;也可以利用事先标定好的相位-深度对应关系直接获取深度信息。无论是哪种重建策略,首先是要根据相移的光栅图像计算得到每个像素点相位值。
图1 物体对条纹图像的相位调制
相位展开式证明如图7所示,蓝色为最终展开的相位,取x点处的相位进行分析。
图7 相位展开证明
3. Matlab代码
clc;close all;clear;
% 图像大小
width = 2448;
height = 2048;
% 初始化3种频率,4步相移图像
I = zeros(height,width,12);
freq = [74 64 59];
% 导入图像,图像命名为Pic(1),Pic(2),...
for i=1:12
number = num2str(i,'%d');
filename = ['Pic(',number, ')','.bmp'];
I(:,:,i) = double(imread(filename)) / 255.0;
end
% 相位主值
Phase = zeros(height,width,3);
for i = 1:3 % 每一组相同频率的有四张图片
I1 = I(:,:,1 + (i-1)*4);
I2 = I(:,:,2 + (i-1)*4);
I3 = I(:,:,3 + (i-1)*4);
I4 = I(:,:,4 + (i-1)*4);
Y = I4 - I2;
X = I1 - I3;
Phase(:,:,i) = atan2(Y, X);
end
% 每一组的相位主值
PH1 = Phase(:,:,1);
PH2 = Phase(:,:,2);
PH3 = Phase(:,:,3);
figure(1),imshow(mat2gray(PH1));
figure(2),imshow(mat2gray(PH2));
figure(3),imshow(mat2gray(PH3));
% 叠加后相位主值
PH12 = zeros(height,width);
PH23 = zeros(height,width);
for i = 1:height
for j = 1:width
% 计算第一组和第二组的相差
if PH1(i,j)>PH2(i,j)
PH12(i,j) = PH1(i,j)-PH2(i,j);
else
PH12(i,j) = PH1(i,j)+2*pi-PH2(i,j);
end
% 计算第二组和第三组的相差
if PH2(i,j)>PH3(i,j)
PH23(i,j) = PH2(i,j)-PH3(i,j);
else
PH23(i,j) = PH2(i,j)+2*pi-PH3(i,j);
end
end
end
PH123 = zeros(height,width);
for i = 1:height
for j = 1:width
if PH12(i,j)>PH23(i,j)
PH123(i,j) = PH12(i,j)-PH23(i,j);
else
PH123(i,j) = PH12(i,j)+2*pi-PH23(i,j);
end
end
end
figure(4),imshow(mat2gray(PH12));
figure(5),imshow(mat2gray(PH23));
figure(6),imshow(mat2gray(PH123));
% 相位解包裹 相位展开
R = freq(1);
PH = PH1 + 2*pi*floor((PH123*R - PH1)/(2*pi));
figure(7),imshow(mat2gray(PH));
参考文献
[1] 李中伟,基于数字光栅投影的结构光三维测量技术与系统研究[D],华中科技大学,2009,05
[2] Reich C , Ritter R , Thesing J . White light heterodyne principle for 3D-measurement[C]// Sensors, Sensor Systems, and Sensor Data Processing. International Society for Optics and Photonics, 1997.
[3] Liu S , Feng W , Zhang Q , et al. Three-dimensional shape measurement of small object based on tri-frequency heterodyne method[C]// 2015 International Conference on Optical Instruments and Technology: Optoelectronic Measurement Technology and Systems. International Society for Optics and Photonics, 2015.
[4] Towers C E , Towers D P , Jones J D C . Absolute fringe order calculation using optimised multi-frequency selection in full-field profilometry[J]. Optics and Lasers in Engineering, 2005, 43(7):p.788-800.
[5] Reich, Carsten. 3-D shape measurement of complex objects by combining photogrammetry and fringe projection[J]. Optical Engineering, 2000, 39(1):224.
————————————————
版权声明:本文为CSDN博主「leaf_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43956164/article/details/105153313
结构光三维重建之光栅图像相位解算(MATLAB)相关推荐
- 【结构光三维重建】多频外差解包裹
最近在看多频外差解包裹,发现很多论文都是直接放公式了,整体上很难直观理解,这篇文章结合发表的论文辅助理解,如果有读者发现其中的错误,请在评论区及时指教,我一定改正,绝不误导大家! 多频外差法 先看一下 ...
- 结构光三维重建之单目标定的一种方法——建立“相位-像点-真实三维坐标”之间的关系
结构光三维重建之单目标定的一种方法--建立"相位-像点-真实三维坐标"之间的关系 1.目的 为了让像我一样刚接触结构光三维扫描的朋友们能更快速地理解整个框架,我先介绍一下写作本文的 ...
- 结构光三维重建1——四步相移原理
一.简介 结构光三维重建主要的原理就是从投影仪中投影出特定图案的结构光,然后通过对多组结构光的分析计算,得到投影仪像素与相机像素的对应关系,进而通过事先标定好的系统参数,实现所拍物体的三维重建. 下面 ...
- 【结构光三维重建标定学习】左超论文之Triangular stereo model
左超论文中各种标定方法一般都分为两步,第一步参数计算,第二步重建 Triangular stereo model(三角立体模型/逆相机法)信息汇总 出自论文:Feng, Shijie, Chao Zu ...
- 重磅直播|计算深度分割技术的实现与全局效应下的结构光三维重建
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间,对3D视觉领域相关知识点进行讲解,并在微 ...
- 双目三维重建_系列篇|结构光三维重建基本原理
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 结构光三维重建系统是由一个相机和一个投影仪组成,关于结构光三维重建系统的理论有很多,其中有一个简单的模 ...
- [结构光三维重建] 2、基于结构光的三维重建系统工作原理总结
概念 基于结构光三维重建系统模型,如下图所示: 基于结构光的三维成像,实际上是三维参数的测量与重现,需要主动去投射结构光到被测物体上,通过结构光的变形来确定被测物的尺寸参数,是一种主动三维测量方式. ...
- 结构光三维重建-3D Scanning Software实现三维重建
结构光三维重建-3D Scanning Software实现三维重建 目录 结构光三维重建-3D Scanning Software三维重建 1. 说明 2.Requirements (1)下载相关文 ...
- 结构光三维重建基本原理
点击进入->3D视觉工坊学习交流群 结构光三维重建系统是由一个相机和一个投影仪组成,关于结构光三维重建系统的理论有很多,其中有一个简单的模型是把投影仪看做相机来使用,从而得到物体的三维信息.接下 ...
最新文章
- 永辉选任新董事长及管理层 创始人张轩松:我和张轩宁没矛盾
- Nginx-05:Nginx配置实例之反向代理2
- jquery正则表达式验证:验证全是数字
- php无法用mail函数发送邮件之原因
- java读取yaml配置文件,snakeyaml读取yaml配置文件
- mysql8解决区分大小写问题_球磨机“包球”和“饱磨”分不清?点进来快速区分,解决问题...
- ubuntu 默认防火墙安装、启用、查看状态
- BEAST 漏洞相关
- android dialog动画_2020年GitHub 上那些优秀Android开源库,这里是Top10!
- 国内搜索引擎技术现状
- [ 网络协议篇 ] IGP 详解之 OSPF 详解(二)--- 四种网络类型 虚链路 详解
- 易知微当选中国互联网协会数字孪生技术应用工作委员会成员单位
- 联想笔记本linux不能启动无线网卡解决方法
- Android7.0上拍照与选择照片Crash问题
- c语言 at指令gprs,gprs AT 指令
- Sqoop1和Sqoop2的刨析对比
- 怎样将相片合成gif图?在线合成图片如何操作?
- 题目:给定一个整数数组 nums 和一个整数目标值 targ数,并返回它们的数组下标。
- window系统中将c文件编译成so共享库
- 云网络安全与数据中心安全