% 测试多频外差原理
% 模拟程序
% 图像尺寸 1024×768
% 共4张/组×3组=12张图
% 3组频率依次为1/70,1/64,1/59
% 本程序基于李中伟的博士论文来实现
% 《基于数字光栅投影的结构光三维测量技术与系统的研究》
% 程序开始
clc;
close all;
clear;
% 图片的初始化
width = 1280;
heigth = 960;
% 三频率
% 这个可以参见李中伟的博士论文
freq = [70 64 59];
% 利用分块矩阵C存储3组共计12张图
% 三种频率,四组相位
C = cell(3,4);
for i=1:3
for j=1:4
C{i,j} = zeros(heigth,width);
end
end
% % 利用余弦函数计算12张图的灰度值
% % 图像的生成
% % 三种频率,四组相位
% for i = 1:3 % 对应三种不同的频率
% for j = 0:3 % 对应四种相位
% for k = 1:width
% C{i,j+1}(:,k) = 128+127*sin(2*pi*k*freq(i)/width+j*pi/2);
% end
% end
% end
%
% % 对灰度值进行归一化处理
% for i = 1:3
% for j = 1:4
% C{i,j} = mat2gray(C{i,j});
% end
% end
% NUM=0;
%显示12张图
% for i = 1:3
% for j = 1:4
% n = 4*(i-1)+j;
% % h = figure(n);
% %imshow(C{i,j});
% NUM=NUM+1;
% a=num2str(NUM);
% Image_name=['H_Sin_' a '.bmp'];
% imwrite(C{i,j},['E:\Four_Phase\' Image_name]);
% end
% end
% 初始化三组处理后的图片灰度矩阵
% phi也是分块矩阵
% 存储相位主值图像
phi = cell(3,1);
for i = 1:3
phi{i,1} = zeros(heigth,width);
end
% 求取相位差
% 计算每种频率对应的相位主值
% 输出三种频率的相位主值,用于相差计算
for i = 1 % 对于3组中的每一组图片
C{i,1}=mat2gray(imread('V_Sin_70_1.bmp'));
I1 = C{i,1};
C{i,2}=mat2gray(imread('V_Sin_70_2.bmp'));
I2 = C{i,2};
C{i,3}=mat2gray(imread('V_Sin_70_3.bmp'));
I3 = C{i,3};
C{i,4}=mat2gray(imread('V_Sin_70_4.bmp'));
I4 = C{i,4};
for g = 1:heigth
for k = 1:width
if I4(g,k)==I2(g,k)&&I1(g,k)>I3(g,k) %四个特殊位置
phi{i,1}(g,k)=0;
elseif I4(g,k)==I2(g,k)&&I1(g,k)<I3(g,k) %四个特殊位置
phi{i,1}(g,k)=pi;
elseif I1(g,k)==I3(g,k)&&I4(g,k)>I2(g,k) %四个特殊位置
phi{i,1}(g,k)=pi/2;
elseif I1(g,k)==I3(g,k)&&I4(g,k)<I2(g,k) %四个特殊位置
phi{i,1}(g,k)=3*pi/2;
elseif I1(g,k)<I3(g,k) %二三象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+pi;
elseif I1(g,k)>I3(g,k)&&I4(g,k)>I2(g,k) %第一象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)));
elseif I1(g,k)>I3(g,k)&&I4(g,k)<I2(g,k) %第四象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+2*pi;
end
end
end
end
for i = 2% 对于3组中的每一组图片
C{i,1}=mat2gray(imread('V_Sin_64_1.bmp'));
I1 = C{i,1};
C{i,2}=mat2gray(imread('V_Sin_64_2.bmp'));
I2 = C{i,2};
C{i,3}=mat2gray(imread('V_Sin_64_3.bmp'));
I3 = C{i,3};
C{i,4}=mat2gray(imread('V_Sin_64_4.bmp'));
I4 = C{i,4};
for g = 1:heigth
for k = 1:width
if I4(g,k)==I2(g,k)&&I1(g,k)>I3(g,k) %四个特殊位置
phi{i,1}(g,k)=0;
elseif I4(g,k)==I2(g,k)&&I1(g,k)<I3(g,k) %四个特殊位置
phi{i,1}(g,k)=pi;
elseif I1(g,k)==I3(g,k)&&I4(g,k)>I2(g,k) %四个特殊位置
phi{i,1}(g,k)=pi/2;
elseif I1(g,k)==I3(g,k)&&I4(g,k)<I2(g,k) %四个特殊位置
phi{i,1}(g,k)=3*pi/2;
elseif I1(g,k)<I3(g,k) %二三象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+pi;
elseif I1(g,k)>I3(g,k)&&I4(g,k)>I2(g,k) %第一象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)));
elseif I1(g,k)>I3(g,k)&&I4(g,k)<I2(g,k) %第四象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+2*pi;
end
end
end
end
for i = 3 % 对于3组中的每一组图片
C{i,1}=mat2gray(imread('V_Sin_59_1.bmp'));
I1 = C{i,1};
C{i,2}=mat2gray(imread('V_Sin_59_2.bmp'));
I2 = C{i,2};
C{i,3}=mat2gray(imread('V_Sin_59_3.bmp'));
I3 = C{i,3};
C{i,4}=mat2gray(imread('V_Sin_59_4.bmp'));
I4 = C{i,4};
for g = 1:heigth
for k = 1:width
if I4(g,k)==I2(g,k)&&I1(g,k)>I3(g,k) %四个特殊位置
phi{i,1}(g,k)=0;
elseif I4(g,k)==I2(g,k)&&I1(g,k)<I3(g,k) %四个特殊位置
phi{i,1}(g,k)=pi;
elseif I1(g,k)==I3(g,k)&&I4(g,k)>I2(g,k) %四个特殊位置
phi{i,1}(g,k)=pi/2;
elseif I1(g,k)==I3(g,k)&&I4(g,k)<I2(g,k) %四个特殊位置
phi{i,1}(g,k)=3*pi/2;
elseif I1(g,k)<I3(g,k) %二三象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+pi;
elseif I1(g,k)>I3(g,k)&&I4(g,k)>I2(g,k) %第一象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)));
elseif I1(g,k)>I3(g,k)&&I4(g,k)<I2(g,k) %第四象限
phi{i,1}(g,k)=atan((I4(g,k)-I2(g,k))./(I1(g,k)-I3(g,k)))+2*pi;
end
end
end
end
% 计算相差
% 保存矩阵,用于多频相差的计算
PH1 = phi{1,1};
PH2 = phi{2,1};
PH3 = phi{3,1};
% 初始化相差变量
% 多频相差
PH12 = zeros(heigth,width);
PH23 = zeros(heigth,width);
PH123 = zeros(heigth,width);
% 计算相差
% 相差计算
% 解相
for g = 1:heigth
for k = 1:width
% 计算第一组和第二组的相差
if PH1(g,k)>PH2(g,k)
PH12(g,k) = PH1(g,k)-PH2(g,k);
else
PH12(g,k) = PH1(g,k)+2*pi-PH2(g,k);
end
% 计算第二组和第三组的相差
if PH2(g,k)>PH3(g,k)
PH23(g,k) = PH2(g,k)-PH3(g,k);
else
PH23(g,k) = PH2(g,k)+2*pi-PH3(g,k);
end
% plot(50,k);
end
end
% 计算最终相差
% 相差图案
% 相位解包裹
for g = 1:heigth
for k = 1:width
if PH12(g,k)>PH23(g,k)
PH123(g,k) = PH12(g,k)-PH23(g,k);
else
PH123(g,k) = PH12(g,k)+2*pi-PH23(g,k);
end
end
end
mm=mat2gray(PH123);
% 显示
figure,imshow(mat2gray(PH12));title('1,2外差'); imwrite(mat2gray(PH12),'12外差.bmp');
figure,imshow(mat2gray(PH23));title('2,3外差'); imwrite(mat2gray(PH23),'23外差.bmp');
figure,imshow(mat2gray(PH123));title('1,2,3外差');imwrite(mat2gray(PH123),'123外差.bmp');
figure,imshow(mat2gray(PH1));title('1相位主值'); imwrite(mat2gray(PH1),'1相位主值.bmp');
figure,imshow(mat2gray(PH2));title('2相位主值'); imwrite(mat2gray(PH2),'2相位主值.bmp');
figure,imshow(mat2gray(PH3));title('3相位主值'); imwrite(mat2gray(PH3),'3相位主值.bmp');
figure;
plot(mm(400,:));
没有合适的资源?快使用搜索试试~ 我知道了~
4步3种方法对比.rar_pipeta3_外差多频_外差法_多频外差3d_绝对相位
共51个文件
bmp:42个
m:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 64 浏览量
2022-07-14
04:39:49
上传
评论 1
收藏 25.67MB RAR 举报
温馨提示
多频外差法,求绝对相位,3种方法对比。。。。。。
资源详情
资源评论
资源推荐
收起资源包目录
4步3种方法对比.rar (51个子文件)
4步3种方法对比
PROGRAM
genSinPatterns.m 1019B
V_Sin_59_1.bmp 1.17MB
unwrapping.m 932B
Untitled.m 2KB
wrapped.m 406B
V_Sin_64_3.bmp 1.17MB
V_Sin_59_3.bmp 1.17MB
V_Sin_70_2.bmp 1.17MB
V_Sin_59_4.bmp 1.17MB
V_Sin_70_4.bmp 1.17MB
V_Sin_64_4.bmp 1.17MB
V_Sin_59_2.bmp 1.17MB
V_Sin_64_2.bmp 1.17MB
V_Sin_70_3.bmp 1.17MB
V_Sin_64_1.bmp 1.17MB
V_Sin_70_1.bmp 1.17MB
模拟实验
test.m 7KB
12外差.bmp 1.17MB
V_Sin_59_1.bmp 1.17MB
2相位主值.bmp 1.17MB
1相位主值.bmp 1.17MB
V_Sin_64_3.bmp 1.17MB
V_Sin_59_3.bmp 1.17MB
23外差.bmp 1.17MB
V_Sin_70_2.bmp 1.17MB
V_Sin_59_4.bmp 1.17MB
3相位主值.bmp 1.17MB
V_Sin_70_4.bmp 1.17MB
V_Sin_64_4.bmp 1.17MB
V_Sin_59_2.bmp 1.17MB
V_Sin_64_2.bmp 1.17MB
V_Sin_70_3.bmp 1.17MB
123外差.bmp 1.17MB
Untitled2.m 2KB
V_Sin_64_1.bmp 1.17MB
V_Sin_70_1.bmp 1.17MB
多频外差无缠绕算法
V_Sin_59_1.bmp 1.17MB
V_Sin_64_3.bmp 1.17MB
V_Sin_59_3.bmp 1.17MB
spin_filter2.m 2KB
step4.m 818B
V_Sin_70_2.bmp 1.17MB
V_Sin_59_4.bmp 1.17MB
V_Sin_70_4.bmp 1.17MB
V_Sin_64_4.bmp 1.17MB
V_Sin_59_2.bmp 1.17MB
V_Sin_64_2.bmp 1.17MB
V_Sin_70_3.bmp 1.17MB
heterodyne_unwrap3.m 2KB
V_Sin_64_1.bmp 1.17MB
V_Sin_70_1.bmp 1.17MB
共 51 条
- 1
APei
- 粉丝: 63
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0