📄 phaseunwrape.m
字号:
number=0;
number1=0;
number2=0;
number3=0;
phie=phid;
%unwrapping the phase
for p=1:256
q=257-p;
if(abs(phid(256,q+1)-phid(256,q))>5);
if(phid(256,q+1)>phid(256,q))
number2=number2+1;
end
if(phid(256,q+1)<phid(256,q))
number2=number2-1;
end
end;
number=number2;
number1=number2;
for n=1:256
m=257-n;
if(abs(phid(m+1,q)-phid(m,q))>5);
if(phid(m+1,q)>phid(m,q))
number=number+1;
end
if(phid(m+1,q)<phid(m,q))
number=number-1;
end
end;
phie(m,q)=number*pi*2+phid(m,q);
k=256+n;
if(abs(phid(k,q)-phid(k-1,q))>5);
if(phid(k,q)<phid(k-1,q))
number1=number1+1;
end
if(phid(k,q)>phid(k-1,q))
number1=number1-1;
end
end;
phie(k,q)=number1*pi*2+phid(k,q);
end;
r=256+p;
if(abs(phid(256,r)-phid(256,r-1))>5);
if(phid(256,r)<phid(256,r-1))
number3=number3+1;
end
if(phid(256,r)>phid(256,r-1))
number3=number3-1;
end
end;
number=number3;
number1=number3;
for n=1:256
m=257-n;
if(abs(phid(m+1,r)-phid(m,r))>5);
if(phid(m+1,r)>phid(m,r))
number=number+1;
end
if(phid(m+1,r)<phid(m,r))
number=number-1;
end
end;
phie(m,r)=number*pi*2+phid(m,r);
k=256+n;
if(abs(phid(k,r)-phid(k-1,r))>5);
if(phid(k,r)<phid(k-1,r))
number1=number1+1;
end
if(phid(k,r)>phid(k-1,r))
number1=number1-1;
end
end;
phie(k,r)=number1*pi*2+phid(k,r);
end;
end
%figure,plot(phie(256,:));
number=0;
number1=0;
number2=0;
number3=0;
phif=phic;
%unwrapping the phase
for p=1:256
q=257-p;
if(abs(phic(256,q+1)-phic(256,q))>5);
if(phic(256,q+1)>phic(256,q))
number2=number2+1;
end
if(phic(256,q+1)<phic(256,q))
number2=number2-1;
end
end;
number=number2;
number1=number2;
for n=1:256
m=257-n;
if(abs(phic(m+1,q)-phic(m,q))>5);
if(phic(m+1,q)>phic(m,q))
number=number+1;
end
if(phic(m+1,q)<phic(m,q))
number=number-1;
end
end;
phif(m,q)=number*pi*2+phic(m,q);
k=256+n;
if(abs(phic(k,q)-phic(k-1,q))>5);
if(phic(k,q)<phic(k-1,q))
number1=number1+1;
end
if(phic(k,q)>phic(k-1,q))
number1=number1-1;
end
end;
phif(k,q)=number1*pi*2+phic(k,q);
end;
r=256+p;
if(abs(phic(256,r)-phic(256,r-1))>5);
if(phic(256,r)<phic(256,r-1))
number3=number3+1;
end
if(phic(256,r)>phic(256,r-1))
number3=number3-1;
end
end;
number=number3;
number1=number3;
for n=1:256
m=257-n;
if(abs(phic(m+1,r)-phic(m,r))>5);
if(phic(m+1,r)>phic(m,r))
number=number+1;
end
if(phic(m+1,r)<phic(m,r))
number=number-1;
end
end;
phif(m,r)=number*pi*2+phic(m,r);
k=256+n;
if(abs(phic(k,r)-phic(k-1,r))>5);
if(phic(k,r)<phic(k-1,r))
number1=number1+1;
end
if(phic(k,r)>phic(k-1,r))
number1=number1-1;
end
end;
phif(k,r)=number1*pi*2+phic(k,r);
end;
end;
eerr11=sum(sum(abs(phie-phif)))/512/512
eerr12=sum(sum(abs(abs(E1)-abs(E21))./abs(E1)))/512/512
phig=phie;
phih=phif;
%平滑
for m=3:510
for n=3:510
eee=(phie(m,n+2)+phie(m,n+1)+phie(m,n-2)+phie(m,n-1)+phie(m+2,n)+phie(m+1,n)+phie(m-2,n)+phie(m-1,n))/8;
if(abs(phig(m,n)-eee)>2.5)
phig(m,n)=eee;
end
end
end;
for m=3:510
for n=3:510
eee=(phif(m,n+2)+phif(m,n+1)+phif(m,n-2)+phif(m,n-1)+phif(m+2,n)+phif(m+1,n)+phif(m-2,n)+phif(m-1,n))/8;
if(abs(phih(m,n)-eee)>2.5)
phih(m,n)=eee;
end
end
end;
disp('unwrapped')
phih=OLD1.*2.*pi./l;
eerr11=sum(sum(abs(phih-phig)))/512/512
eerr12=sum(sum(abs(abs(E1)-abs(E21))./abs(E1)))/512/512
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
number=0;
number1=0;
number2=0;
number3=0;
phie=phid;
%unwrapping the phase
for p=1:256
q=257-p;
if(abs(phid(256,q+1)-phid(256,q))>5);
if(phid(256,q+1)>phid(256,q))
number2=number2+1;
end
if(phid(256,q+1)<phid(256,q))
number2=number2-1;
end
end;
number=number2;
number1=number2;
for n=1:256
m=257-n;
if(abs(phid(m+1,q)-phid(m,q))>5);
if(phid(m+1,q)>phid(m,q))
number=number+1;
end
if(phid(m+1,q)<phid(m,q))
number=number-1;
end
end;
phie(m,q)=number*pi*2+phid(m,q);
k=256+n;
if(abs(phid(k,q)-phid(k-1,q))>5);
if(phid(k,q)<phid(k-1,q))
number1=number1+1;
end
if(phid(k,q)>phid(k-1,q))
number1=number1-1;
end
end;
phie(k,q)=number1*pi*2+phid(k,q);
end;
r=256+p;
if(abs(phid(256,r)-phid(256,r-1))>5);
if(phid(256,r)<phid(256,r-1))
number3=number3+1;
end
if(phid(256,r)>phid(256,r-1))
number3=number3-1;
end
end;
number=number3;
number1=number3;
for n=1:256
m=257-n;
if(abs(phid(m+1,r)-phid(m,r))>5);
if(phid(m+1,r)>phid(m,r))
number=number+1;
end
if(phid(m+1,r)<phid(m,r))
number=number-1;
end
end;
phie(m,r)=number*pi*2+phid(m,r);
k=256+n;
if(abs(phid(k,r)-phid(k-1,r))>5);
if(phid(k,r)<phid(k-1,r))
number1=number1+1;
end
if(phid(k,r)>phid(k-1,r))
number1=number1-1;
end
end;
phie(k,r)=number1*pi*2+phid(k,r);
end;
end
%figure,plot(phie(256,:));
number=0;
number1=0;
number2=0;
number3=0;
phif=phic;
%unwrapping the phase
for p=1:256
q=257-p;
if(abs(phic(256,q+1)-phic(256,q))>5);
if(phic(256,q+1)>phic(256,q))
number2=number2+1;
end
if(phic(256,q+1)<phic(256,q))
number2=number2-1;
end
end;
number=number2;
number1=number2;
for n=1:256
m=257-n;
if(abs(phic(m+1,q)-phic(m,q))>5);
if(phic(m+1,q)>phic(m,q))
number=number+1;
end
if(phic(m+1,q)<phic(m,q))
number=number-1;
end
end;
phif(m,q)=number*pi*2+phic(m,q);
k=256+n;
if(abs(phic(k,q)-phic(k-1,q))>5);
if(phic(k,q)<phic(k-1,q))
number1=number1+1;
end
if(phic(k,q)>phic(k-1,q))
number1=number1-1;
end
end;
phif(k,q)=number1*pi*2+phic(k,q);
end;
r=256+p;
if(abs(phic(256,r)-phic(256,r-1))>5);
if(phic(256,r)<phic(256,r-1))
number3=number3+1;
end
if(phic(256,r)>phic(256,r-1))
number3=number3-1;
end
end;
number=number3;
number1=number3;
for n=1:256
m=257-n;
if(abs(phic(m+1,r)-phic(m,r))>5);
if(phic(m+1,r)>phic(m,r))
number=number+1;
end
if(phic(m+1,r)<phic(m,r))
number=number-1;
end
end;
phif(m,r)=number*pi*2+phic(m,r);
k=256+n;
if(abs(phic(k,r)-phic(k-1,r))>5);
if(phic(k,r)<phic(k-1,r))
number1=number1+1;
end
if(phic(k,r)>phic(k-1,r))
number1=number1-1;
end
end;
phif(k,r)=number1*pi*2+phic(k,r);
end;
end;
eerr11=sum(sum(abs(phie-phif)))/512/512
eerr12=sum(sum(abs(abs(E1)-abs(E21))./abs(E1)))/512/512
phig=phie;
phih=phif;
%平滑
for m=3:510
for n=3:510
eee=(phie(m,n+2)+phie(m,n+1)+phie(m,n-2)+phie(m,n-1)+phie(m+2,n)+phie(m+1,n)+phie(m-2,n)+phie(m-1,n))/8;
if(abs(phig(m,n)-eee)>2.5)
phig(m,n)=eee;
end
end
end;
for m=3:510
for n=3:510
eee=(phif(m,n+2)+phif(m,n+1)+phif(m,n-2)+phif(m,n-1)+phif(m+2,n)+phif(m+1,n)+phif(m-2,n)+phif(m-1,n))/8;
if(abs(phih(m,n)-eee)>2.5)
phih(m,n)=eee;
end
end
end;
disp('unwrapped')
phih=OLD1.*2.*pi./l;
eerr11=sum(sum(abs(phih-phig)))/512/512
eerr12=sum(sum(abs(abs(E1)-abs(E21))./abs(E1)))/512/512
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
l=1:8:512;
figure,plot(l,phih(256,1:8:512),'-',l,phig(256,1:8:512),'.');
axis([0,500,-0.5,45]);
figure,plot(l,phif(256,1:8:512)-phie(256,1:8:512),'-',l,phih(256,1:8:512)-phig(256,1:8:512),'.');
axis([0,500,-0.5,10]);
for m=3:510
for n=3:510
eee=(phi1(m,n+2)+phi1(m,n+1)+phi1(m,n-2)+phi1(m,n-1)+phi1(m+2,n)+phi1(m+1,n)+phi1(m-2,n)+phi1(m-1,n))/8;
if(abs(phi1(m,n)-eee)>0.1)
phi1(m,n)=eee;
end
end
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -