• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: PMP  

资源简介

自己编写的一个PMP四步轮廓术的模拟仿真实验,很全面,包括条纹的模拟,相位的展开。总之,很不错的!

资源截图

代码片段和文件信息

%四步相移轮廓术的仿真实验
%仿真的步骤分为以下五步

%--------------第一步,三维图形的模拟-------------------
%函数表达式z(xy)=0.4*sqrt[100*100-(x-150)^2-(y-150)^2]
%模拟的时候以像素作为单位
clear
clc
x = 1:300;
y = 1:300; 
[XY]=meshgrid(xy);
Z=0.4*sqrt(10000-(X-150).^2-(Y-150).^2);
Z(find(angle(Z)))=0;
figure;mesh(xyZ);
title(‘实际物体的三维轮廓‘)
clear indexs;


%--------------第二步,正弦光栅的制作-------------------
f = 1/5;%一个光栅空间频率
X = ones(3001)*x;
fai =2*pi*f.*X;
I00 = 1 + cos(fai); 
imwrite(I00‘shatter00.bmp‘‘bmp‘);%图片的写入,没有发生移位

%系统参数的设置
len = 100;%相机的出瞳中心到参考面的距离
d =20; %投影中心到照相机中心的距离
p =1/f;%投影光栅的空间周期,6个像素
detafai = 2*pi*f*d.*Z/len;%物体表面增加的相位
clear X Y Z I00;

%变形光栅的写入
I11 = 1 + cos(fai+detafai);%1+cos()
imwrite(I11‘shatter11.bmp‘‘bmp‘);%图片的写入,第一个光栅
I12 = 1 + cos(fai+detafai+pi/2);% 1-sin()
imwrite(I12‘shatter12.bmp‘‘bmp‘);%图片的写入,第二个光栅
I13 = 1 + cos(fai+detafai+pi);% 1-cos()
imwrite(I13‘shatter13.bmp‘‘bmp‘);%图片的写入,第三个光栅
I14 = 1 + cos(fai+detafai+3*pi/2);%1+sin()
imwrite(I14‘shatter14.bmp‘‘bmp‘);%图片的写入,第四个光栅

%原始光栅的写入
I01 = 1 + cos(fai);%1+cos()
imwrite(I01‘shatter01.bmp‘‘bmp‘);%图片的写入,第一个光栅
I02 = 1 + cos(fai+pi/2);% 1-sin()
imwrite(I02‘shatter02.bmp‘‘bmp‘);%图片的写入,第二个光栅
I03 = 1 + cos(fai+pi);% 1-cos()
imwrite(I03‘shatter03.bmp‘‘bmp‘);%图片的写入,第三个光栅
I04 = 1 + cos(fai+3*pi/2);%1+sin()
imwrite(I04‘shatter04.bmp‘‘bmp‘);%图片的写入,第四个光栅
clear I01 I02 I03 I04 I11 I12 I13 I14;

%--------------第三步,图片的读取以及初始化滤波-------------------

h=fspecial(‘gaussian‘91);%产生高斯低通滤波器

%参考图片与调制图片的读取
%参考图片读取,为了获取载波相位
I01=imread(‘shatter01.bmp‘‘bmp‘); I01=double(filter2(hdouble(I01)));
I02=imread(‘shatter02.bmp‘‘bmp‘); I02=double(filter2(hdouble(I02)));
I03=imread(‘shatter03.bmp‘‘bmp‘); I03=double(filter2(hdouble(I03)));
I04=imread(‘shatter04.bmp‘‘bmp‘); I04=double(filter2(hdouble(I04)));
%调制光栅图片的读取,为了获取变形后的相位
I11=imread(‘shatter11.bmp‘‘bmp‘); I11=double(filter2(hdouble(I11))

评论

共有 条评论