资源简介
基于离散余弦变换的最小二乘法相位解包裹(DCT),peaks生成包裹相位图,用LS-DCT解包裹得到去包裹的真实相位图
代码片段和文件信息
%基于离散余弦变换的最小二乘法相位解包裹
clear all
close all
clc
tic % tic(开头) toc(结尾) 这2个函数是计算程序运行时间的
phi0=peaks(200)*3;
figure(1);surf(phi0);title(‘3D original phase image ‘) % 生成3维的图像
figure(2)
imagesc(phi0)
title(‘2D original phase image‘)
phi=angle(exp(j*phi0)); % angle是表示图像相位的,且在[-π,+π]
[mn]=size(phi);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
phi1=zeros(2*m-12*n-1);
phi1(1:m1:n)=phi;
phi1(m+1:2*m-11:n)=phi(m:-1:2:);%phi1是由phi组成的四部分
phi1(1:mn+1:2*n-1)=phi(:n:-1:2);
phi1(m+1:2*m-1n+1:2*n-1)=phi(m:-1:2n:-1:2);
figure(3)
imagesc(phi1)
title(‘wrap phase image‘)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
phidx=zeros(2*m-12*n-1);
phidy=zeros(2*m-12*n-1);
phidx(1:2*m-2:)=angle(exp(j*(phi1(2:2*m-1:)-phi1(1:2*m-2:))));%phidx是由phi1的后一行减去前一行的差组成的
phidy(:1:2*n-2)=angle(exp(j*(phi1(:2:2*n-1)-phi1(:1:2*n-2))));%phidy是由phi1的后一列减去前一列的差组成的
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
lou=zeros(2*m-12*n-1);
loudx=zeros(2*m-12*n-1);
loudy=zeros(2*m-12*n-1);
loudx(2:2*m-1:)=phidx(2:2*m-1:)-phidx(1:2*m-2:);%loudx是由phidx的后一行减去前一行的差组成的
loudy(:2:2*n-1)=phidy(:2:2*n-1)-phidy(:1:2*n-2);%loudy是由phidy的后一列减去前一列的差组成的
lou=loudx+loudy;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PP=fft2(lou);
for ii=1:2*m-1
for jj=1:2*n-1
k1=2*cos((ii)*pi/(m));
k2=2*cos((jj)*pi/(n));
PH(iijj)=PP(iijj)/(k1+k2-4);
end
end
phi3=ifft2(PH);
phi3=phi3(1:m1:n);
figure(4)
imagesc(real(phi3))
title(‘unwrapping phase by LS‘)
toc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1615 2014-07-30 21:14 LSunwrap.m
----------- --------- ---------- ----- ----
1615 1
- 上一篇:基于8086的LED点阵汉字显示
- 下一篇:QT5串口上位机源代码
评论
共有 条评论