没有合适的资源?快使用搜索试试~ 我知道了~
解包裹程序
4星 · 超过85%的资源 需积分: 19 76 下载量 144 浏览量
2013-05-31
17:14:09
上传
评论 2
收藏 4KB TXT 举报
温馨提示
试读
6页
对于干涉图的相位解包裹,对matlab语言编写
资源推荐
资源详情
资源评论
clear all
clc
h=fspecial('gaussian',9,1);
%度如图 并求平均值
I1=imread('a01.bmp','bmp');
I1=filter2(h,double(I1(:,:,1)));
I2=imread('a02.bmp','bmp');
I2=filter2(h,double(I2(:,:,1)));
I3=imread('a03.bmp','bmp');
I3=filter2(h,double(I3(:,:,1)));
I4=imread('a04.bmp','bmp');
I4=filter2(h,double(I4(:,:,1)));
% I1=double(I1(201:400,201:500));
% I2=double(I2(201:400,201:500));
% I3=double(I3(201:400,201:500));
% I4=double(I4(201:400,201:500));
I1=double(I1);
I2=double(I2);
I3=double(I3);
I4=double(I4);
[width,height]=size(I1);
% width=200;
% height=300;
%解包
for i=1:width
for j=1:height
if (I1(i,j)==I3(i,j))
if(I2(i,j)>I4(i,j))
phase(i,j)=pi/2;
clc
h=fspecial('gaussian',9,1);
%度如图 并求平均值
I1=imread('a01.bmp','bmp');
I1=filter2(h,double(I1(:,:,1)));
I2=imread('a02.bmp','bmp');
I2=filter2(h,double(I2(:,:,1)));
I3=imread('a03.bmp','bmp');
I3=filter2(h,double(I3(:,:,1)));
I4=imread('a04.bmp','bmp');
I4=filter2(h,double(I4(:,:,1)));
% I1=double(I1(201:400,201:500));
% I2=double(I2(201:400,201:500));
% I3=double(I3(201:400,201:500));
% I4=double(I4(201:400,201:500));
I1=double(I1);
I2=double(I2);
I3=double(I3);
I4=double(I4);
[width,height]=size(I1);
% width=200;
% height=300;
%解包
for i=1:width
for j=1:height
if (I1(i,j)==I3(i,j))
if(I2(i,j)>I4(i,j))
phase(i,j)=pi/2;
elseif(I2(i,j)<I4(i,j))
phase(i,j)=3*pi/2;
else
phase(i,j)=0;
end
elseif (I1(i,j)>I3(i,j))
if I2(i,j)>=I4(i,j)
phase(i,j)=atan((I2(i,j)-I4(i,j))/(I1(i,j)-I3(i,j)));
else
phase(i,j)=2*pi-atan((I4(i,j)-I2(i,j))/(I1(i,j)-I3(i,j)));
end
else
if I2(i,j)>=I4(i,j)
phase(i,j)=pi-atan((I2(i,j)-I4(i,j))/(I3(i,j)-I1(i,j)));
else
phase(i,j)=pi+atan((I4(i,j)-I2(i,j))/(I3(i,j)-I1(i,j)));
end
end
end
end
phase=unwrap(phase);
%消除2pi突变
% midx=fix(width/2);
% for j=1:width
% for m=height-1:-1:1
% a=phase(j,m)-phase(j,m+1);
% if a>pi
% for n=m:-1:1
% phase(j,n)=phase(j,n)-2*pi;
% end
phase(i,j)=3*pi/2;
else
phase(i,j)=0;
end
elseif (I1(i,j)>I3(i,j))
if I2(i,j)>=I4(i,j)
phase(i,j)=atan((I2(i,j)-I4(i,j))/(I1(i,j)-I3(i,j)));
else
phase(i,j)=2*pi-atan((I4(i,j)-I2(i,j))/(I1(i,j)-I3(i,j)));
end
else
if I2(i,j)>=I4(i,j)
phase(i,j)=pi-atan((I2(i,j)-I4(i,j))/(I3(i,j)-I1(i,j)));
else
phase(i,j)=pi+atan((I4(i,j)-I2(i,j))/(I3(i,j)-I1(i,j)));
end
end
end
end
phase=unwrap(phase);
%消除2pi突变
% midx=fix(width/2);
% for j=1:width
% for m=height-1:-1:1
% a=phase(j,m)-phase(j,m+1);
% if a>pi
% for n=m:-1:1
% phase(j,n)=phase(j,n)-2*pi;
% end
剩余5页未读,继续阅读
资源评论
- qq_315358552019-07-01还不错勉强能用一下
- qq_229340772015-02-04不错 值得参考
- manchukehan2014-10-16有参考考价值的程序,学习一下,感谢分享
u010771968
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功