%% ************************************
% 作者:James_Ray_Murphy
% *******************************************
clear all
close all
clc
%% *************初始相位**************
N = 512;
G = 20;
phi0 = peaks(N)*G; %模拟初始相位
figure(1)
surf(phi0,'FaceColor','interp', 'EdgeColor','none','FaceLighting','phong');
camlight left, axis tight
xlabel('X/Pixels','FontSize',14);ylabel('Y/Pixels','FontSize',14);zlabel('Phase/Radians','FontSize',14);%title('Initial Phase','FontSize',14)
set(figure(1),'name','Initial Phase 3D','Numbertitle','off');
phi = angle(exp(j*phi0)); %包裹相位
figure(2);
imshow(phi,[]);
xlabel('X/Pixels','FontSize',14);ylabel('Y/Pixels','FontSize',14);%title('Wrapped Phase','FontSize',14)
set(figure(2),'name','Wrapped Phase','Numbertitle','off');
axis on
%% *************相位解包裹**************
%********************对包裹相位求一阶偏微分***
% 作者:James_Ray_Murphy
% *******************************************
clear all
close all
clc
%% *************初始相位**************
N = 512;
G = 20;
phi0 = peaks(N)*G; %模拟初始相位
figure(1)
surf(phi0,'FaceColor','interp', 'EdgeColor','none','FaceLighting','phong');
camlight left, axis tight
xlabel('X/Pixels','FontSize',14);ylabel('Y/Pixels','FontSize',14);zlabel('Phase/Radians','FontSize',14);%title('Initial Phase','FontSize',14)
set(figure(1),'name','Initial Phase 3D','Numbertitle','off');
phi = angle(exp(j*phi0)); %包裹相位
figure(2);
imshow(phi,[]);
xlabel('X/Pixels','FontSize',14);ylabel('Y/Pixels','FontSize',14);%title('Wrapped Phase','FontSize',14)
set(figure(2),'name','Wrapped Phase','Numbertitle','off');
axis on
%% *************相位解包裹**************
%********************对包裹相位求一阶偏微分***

本文展示了如何使用MATLAB实现四向剪切最小二乘相位解包裹算法。首先模拟了初始相位,然后通过对包裹相位求一阶和二阶偏微分,计算Rou3矩阵。接着通过离散余弦变换(DCT)求解泊松方程,完成相位解包裹。最后展示了解包裹后的相位结果。
最低0.47元/天 解锁文章
1674





