资源简介
利用matlab实现三频外差法解相位,通过生成三组相应频率的四步相移灰度图,共12张原始图片,计算出其中的每一坐标的相位。

代码片段和文件信息
%模拟波浪图像
%clear all
%tic;
%L=2000;d=200;f0=1/16;w=2*pi*f0;
%x=1:512;y=x;
%[xy]=meshgrid(xy);
%z=3*peaks(512);
%figure(1);mesh(z);axis on
%xlabel(‘x(pixel)‘);ylabel(‘y(pixel)‘);zlabel(‘h(mm)‘)
%基准光栅
%J0=128+127*cos(w*x);
%J0=mat2gray(J0);
%figure(2);imshow(J0);axis on
%变形光栅
%J1=128+127*cos(w*(x+z*d./(L-z)));
%J1=mat2gray(J1);
%J1=imnoise(J1‘gaussian‘00.001);
%figure(3);imshow(J1);axis on
%参考李中伟博士论文实现相移法加三频外差解相位仿真
% 程序开始
clc;
close all;
clear;
% 图片的初始化
width = 1024;
heigth = 768;
% 三频率
% 这个可以参见李中伟的博士论文
freq = [70 64 59]; %像素单位为个数,可以看做频率;正弦函数为周期含义
f12 =abs((freq(1)*freq(2))/(freq(1)-freq(2)));
f23 = abs((freq(2)*freq(3))/(freq(2)-freq(3)));
f13 = abs((freq(1)*freq(3))/(freq(1)-freq(3)));
f123 = abs((f12*f23)/f12-f23);
% 利用分块矩阵C存储3组共计12张图
% 三种频率,四组相位
C = cell(34);
for i=1:3
for j=1:4
C{ij} = zeros(heigthwidth);
end
end
% 利用余弦函数计算12张图的灰度值
% 图像的生成
% 三种频率,四组相位
for i = 1:3 % 对应三种不同的频率
for j = 0:3 % 对应四种相位
for k = 1:width
C{ij+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{ij} = mat2gray(C{ij});
end
end
% 显示12张图
for i = 1:3
for j = 1:4
n = 4*(i-1)+j;
h = figure(n);
imshow(C{ij});
end
end
% 初始化三组处理后的图片灰度矩阵
% phi也是分块矩阵
% 存储相位主值图像
phi = cell(31);
for i = 1:3
phi{i1} = zeros(heigthwidth);
end
% 求取相位差
% 计算每种频率对应的相位主值
% 输出三种频率的相位主值,用于相差计算
for i = 1:3 % 对于3组中的每一组图片,每一组相同频率的有四张图片
I1 = C{i1};
I2 = C{i2};
I3 = C{i3};
I4 = C{i4};
for g = 1:heigth
for k = 1:width
if I4(gk)==I2(gk)&&I1(gk)>I3(gk) %四个特殊位置
phi{i1}(gk)=0;
elseif I4(gk)==I2(gk)&&I1(gk)
phi{i1}(gk)=pi;
elseif I1(gk)==I3(gk)&&I4(gk)>I2(gk) %四个特殊位置
phi{i1}(gk)=pi/2;
elseif I1(gk)==I3(gk)&&I4(gk)
phi{i1}(gk)=3*pi/2;
elseif I1(gk)
phi{i1}(gk)=atan((I4(gk)-I2(gk))./(I1(gk)-I3(gk)))+pi;
elseif I1(gk)>I3(gk)&&I4(gk)>I2(gk) %第一象限
phi{i1}(gk)=atan((I4(gk)-I2(gk))./(I1(gk)-I3(gk)));
elseif I1(gk)>I3(gk)&&I4(gk)
phi{i1}(gk)=atan((I4(gk)-I2(gk))./(I1(gk)-I3(gk)))+2*pi;
end
end
end
end
% 计算相差
% 保存矩阵,用于多频相差的计算
PH1 = phi{11}; %频率1
PH2 = phi{21}; %频率2
PH3 = phi{31}; %频率3
% 初始化相差变量
% 多频相差
PH12 = zeros(heigthwidth);
PH23 = zeros(heigthwidth);
PH13 = zeros(heigthwidth);
PH123 = zeros(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6449 2019-09-29 13:03 Multi_frequency_heterodyne_phase_solution.m
----------- --------- ---------- ----- ----
6449 1
- 上一篇:PSO工具箱
- 下一篇:DSSS直接序列扩频通信系统仿真Matlab程序
相关资源
- 读取txt文件内容matlab代码实现
- 细胞图像分割matlab代码
- 基于MP的时频分析MATLAB代码
- WCDMA matlab代码
- 图像降噪Matlab代码
- 圣诞树(matlab代码)
- 心音信号处理分析(附matlab代码)
- Pattern Recognition and Machine Learning(高清
- 均值滤波和FFT频谱分析Matlab代码
- 欧拉放大论文及matlab代码
- GPS信号的码捕获matlab代码.7z
- matlab读取SP3文件
- 图像的饱和度,亮度,色调的matlab代
- 肤色检测matlab代码
- sutton强化学习随书MATLAB代码
- 压缩鬼成像matlab代码
- 压缩感知(Compressed Sensing CS)matlab代
- 基于OFDMA系统的多用户资源分配算法,
- Allan方差分析MATLAB代码,含MPU6050八小
- 均匀球体剖面重力异常正演模拟Matl
- 印章识别matlab代码
- 连续潮流matlab代码
- 线性拟合仿真-最小二乘法、正交回归
- 矩阵填充MATLAB代码
- 大型飞机航拍图处理matlab代码
- LMS语音信号去噪matlab代码
- 卡尔曼滤波MATLAB代码170027
- Matlab代码编写的semi-supervised CCA 程序
- EOF分析matlab代码
- 尾灯识别matlab代码
评论
共有 条评论