⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ge__sphere.m

📁 菲涅耳全息图的生成与重现
💻 M
字号:
%菲涅耳全息图的生成与重现
clear all;clc;
cm=0.01;um=1e-6;
M=512;N=512;                                             %全息图分辨率
z=0.30;                                                  %菲涅尔传输距离
lambda=0.63*um;                                          %波长
k=2*pi/lambda;                                           %波数
hx=0.5*cm;hy=0.5*cm;                                     %全息图大小
dhx=hx/M;dhy=hy/N;                                       %全息图各方向增量
x=dhx.*(ones(N,1)*[-M/2:M/2-1]);
y=(dhy.*(ones(N,1)*[-M/2:M/2-1]))';
pic=imread('E256.bmp');
figure;imshow(pic);                                                      %原始图
f0=zeros(N,1)*[1:M];
f0(129:384,129:384)=pic;                                                  %扩充图像
dx0=lambda*z/(M*dhx);
dy0=lambda*z/(N*dhy);                                                  %物体采样间隔
x0=ones(N,1)*[-M/2:M/2-1]*dx0;
y0=[-N/2:N/2-1]'*ones(1,M)*dy0;                                    %Input f0 is in natural order
g=f0.*exp(i*0.5*k*(x0.^2+y0.^2)/z);                                     %First phase factor
G=fftshift(fft2(fftshift(f0)));                                        %Fourier transform
f1=G./(i*lambda*z);
du=1./(M*dx0);
dv=1./(N*dy0);
dx1=lambda*z*du;
dy1=lambda*z*dv;
x1=ones(N,1)*[-M/2:M/2-1]*dx1;
y1=[-N/2:N/2-1]'*ones(1,M)*dy1;                                                     %Baseline for output
yo=2.0*cm;                                                                       %参考光位置
A=1;
ur=A*exp(i*0.5*k*(x1.^2+y1.^2+2*yo*y1)/z);                                    %球面参考光的复波函数
h=A*conj(f1).*exp(j*2*pi*yo*dy1);
H=abs(f1).^2+abs(ur).^2+h+conj(h);              %全息图
HH=mat2gray(H);                       
figure;imshow(HH);                                                                              %显示全息图
%
fh=h;                                         
%a=0.002;b=0.3;
%rp1=pure(rp1,a,b,x1,y1);                                                           %消除零级和共轭像
[f2,dx2,dy2,x2,y2] = fresnelf(fh,N,N,dx1,dy1,z,lambda);
f2=abs(f2).^2;
f2=mat2gray(f2);
figure;imshow(f2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -