光栅投影三维重建
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了光栅投影三维重建相关的知识,希望对你有一定的参考价值。
1、内容简介
略
510-可以交流、咨询、答疑
2、内容说明
背景: 光学三维测量 技术 以现代光学为基础,融光电子学、图像处理、图形 学等为一体,是科学技术飞速发展所催生出的现代测量技术。基于光栅投影的三 维测量方法通过将一定规则的光栅条纹投影到物体表面,对获取到的条纹图像作 为三维信息的载体加以分析,由视觉原理得到物体的表面信息,在医疗、航天、 文物保护等领域有着重要的应用clc
close all
clear
x=-42:0.005:-22;
y=10:0.005:30;
[X,Y]=meshgrid(x,y);
z=sqrt(900-(X+32).^2-(Y-20).^2);
mesh(x,y,z);
hold on;
set(gca,'xlim',[-70,50]);
set(gca,'ylim',[-70,50]);
xlabel x
ylabel y
zlabel z
scatter3(0,0,80, 'filled')
hold on
scatter3(-64,0,80, 'filled')
hold on
width = 1280;
height = 1080;
x1=-67.2:0.005:-60.8-0.005;
y1=-2.7:0.005:2.7-0.005;
cam = [-64 0 80];
[X1,Y1]=meshgrid(x1,y1);
z1=88+X1*0+Y1*0;
mesh(x1,y1,z1);
hold on
plot3(0,0,80);
hold on
x2=-3.2:0.005:3.2-0.005;
y2=-2.7:0.005:2.7-0.005;
project = [0 0 80];
[X2,Y2]=meshgrid(x2,y2);
z2=88+X2*0+Y2*0;
mesh(x2,y2,z2);
hold off
%%
for i0=1:width
for j0=1:height
for k0=1:3
findPoint(i0,j0,k0)=0;
end
for k0=1:2
findPointPreject(i0,j0,k0)=0;
end
findPointPreject(i0,j0,3)=88;
end
end
%%
tol = 0.01;
%%
figure
for i = 1:width
for j = 1:height
pointX = x1(i);
pointY = y1(j);
pointZ = 88;
for i1 = 1:length(x)
slope = (x(i)-pointX)/(cam(1)-pointX);
yTmp = slope*(cam(2)-pointY)+pointY;
zTmp = slope*(cam(3)-pointZ)+pointZ;
radius = sqrt((x(i)+32)^2 + (yTmp-20)^2 + zTmp^2);
if abs(radius-30)<tol
break
end
end
findPoint(i,j,:) = [x(i), yTmp, zTmp];
xline = [x1(i) cam(1) x(i)];
yline = [y1(j) cam(2) yTmp];
zline = [88 cam(3) zTmp];
plot3(xline,yline,zline);
hold on
end
end
hold off
%%
3、仿真分析
略
4、参考论文
光栅投影三维测量关键技术研究_王建华
光栅投影三维测量系统标定技术研究_朱勇建
基于光栅投影的相位解相方法研究_张旭
基于数字光栅投影的三维测量关键技术研究_杨建柏
利用三频外差实现的小视场三维测量系统_艾佳
以上是关于光栅投影三维重建的主要内容,如果未能解决你的问题,请参考以下文章
光学基于matlab GUI光栅条纹投影生成含Matlab源码 2118期