logo资料库

全息图程序.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
%Modified off-axis reference beam CGH of Burch% %读入原始图象 PI=3.14159; Image=imread('E:\123.jpg'); N=512; A=zeros(N,N); B=zeros(N,N); for I=1:1:256 for J=1:1:256 ImageNum=double(Image(I,J,1)); A(I,J)=ImageNum/255; B(I,J)=0; end;end; figure; imshow(A); %为降低全息图的动态范围,乘一随机位相因子% for I=1:1:N for J=1:1:N R=rand(1,1); B(I,J)=A(I,J)*sin(R*2*PI); A(I,J)=A(I,J)*cos(R*2*PI);
F(I,J)=A(I,J)+j*B(I,J); end;end; %为降低全息图的动态范围,乘一随机位相因子% %对物函数做二维 FFT 变换% F=fft2(F); Max=max(max(abs(F))); F=F/Max; A=real(F); B=imag(F); %对物函数做二维 FFT 变换% %定义载波参数 alpha=0.5; for I=1:1:N for J=1:1:N Xcos=(J-1)/127; A1(I,J)=cos(2*PI*alpha*Xcos); B1(I,J)=sin(2*PI*alpha*Xcos); end;end; %定义载波参数 %全息图数据区 for I=1:1:N for J=1:1:N
Holodata(I,J)=0.5+0.5*(A(I,J)*A1(I,J)+B(I,J)*B1(I,J)); end;end; %全息图数据区 %绘制全息图,制作灰阶全息图像,灰度等级 256 M=512;%定义全息图的大小, Hologram=zeros(M,M); S=M/N;%定义每个抽样单元大小为 S,S for I=1:1:N for J=1:1:N Xa=(J-1)*S+1; Xb=J*S; Ya=(I-1)*S+1; Yb=I*S; for Ix=Xa:1:Xb for Iy=Ya:1:Yb Hologram(Iy,Ix)=Holodata(I,J); end;end; end;end; Max=max(max(Hologram)); Hologram=Hologram/Max; figure;
imshow(Hologram); %绘制全息图,制作灰阶全息图像,灰度等级 256 %再现 Object=fft2(Hologram); Object=fftshift(Object); Object=abs(Object); Object=1000*Object/max(max(Object)); figure; imshow(Object);
分享到:
收藏