资源简介

傅里叶变换轮廓术的MATLAB实现。基于参考光栅和变形光栅得出折叠相位,进过相位展开,最后根据相位高度关系得出物体高度信息。

资源截图

代码片段和文件信息

I=imread(‘C:\Users\NQZ-PC\Desktop\CHENGXV\image.jpg‘);
figure; imshow(I);title(‘变形光栅图‘);
I_fft=fftshift(fft2(rgb2gray(I)));a=abs(I_fft);
figure;
imshow(log(1+abs(I_fft))[]);title(‘频谱图‘);
figureplot((abs(I_fft(257:))));title(‘中间行频谱图‘);
[maxvaluezuobiao]=max(abs(I_fft(257260:end)));
zuobiao=260+zuobiao-1;
W=19;
Window=ones(2*W+12*W+1); 
figure;mesh(Window);title(‘滤波器‘);
jipin=zeros(512);
jipin(257-W:257+W257-W:257+W)=I_fft(257-W:257+Wzuobiao-W:zuobiao+W).*Window;  %取基频
figure;
imshow(log(1+abs(jipin))[]);title(‘基频转移至中心‘);
jipin_ifft=(ifft2(ifftshift(jipin)));  % 逆傅立叶变换
wrapped_Phase=angle(jipin_ifft);  % 得到折叠相位
figure;
mesh(wrapped_Phase);title(‘包裹位相图‘);

for n=1:200
    wrapped_Phase(n:)=uphase(wrapped_Phase(n:));
end
for n=1:150
    wrapped_Phase(:n)=uphase(wrapped_Phase(:n));
end
for n=380:512
    wrapped_Phase(n:)=uphase(wrapped_Phase(n:));
end
for n=150:512
    wrapped_Phase(200:380n)=uphase(wrapped_Phase(200:380n));
end


figure;
mesh(wrapped_Phase);title(‘相位展开图‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       92943  2018-06-15 09:24  CHENGXV\image.jpg
     文件        1084  2018-06-30 11:37  CHENGXV\test.m
     文件         144  2018-06-30 11:37  CHENGXV\uphase.m
     目录           0  2018-06-30 11:36  CHENGXV\

评论

共有 条评论