您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 全息图matlab程序
%Modifiedoff-axisreferencebeamCGHofBurch%%读入原始图象PI=3.14159;Image=imread('lena256.jpg');N=512;A=zeros(N,N);B=zeros(N,N);forI=1:1:256forJ=1:1:256ImageNum=double(Image(I,J,1));A(I,J)=ImageNum/255;B(I,J)=0;end;end;figure;imshow(A);%为降低全息图的动态范围,乘一随机位相因子%forI=1:1:NforJ=1:1:NR=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;forI=1:1:NforJ=1:1:NXcos=(J-1)/127;A1(I,J)=cos(2*PI*alpha*Xcos);B1(I,J)=sin(2*PI*alpha*Xcos);end;end;%定义载波参数%全息图数据区forI=1:1:NforJ=1:1:NHolodata(I,J)=0.5+0.5*(A(I,J)*A1(I,J)+B(I,J)*B1(I,J));end;end;%全息图数据区%绘制全息图,制作灰阶全息图像,灰度等级256M=512;%定义全息图的大小,Hologram=zeros(M,M);S=M/N;%定义每个抽样单元大小为S,SforI=1:1:NforJ=1:1:NXa=(J-1)*S+1;Xb=J*S;Ya=(I-1)*S+1;Yb=I*S;forIx=Xa:1:XbforIy=Ya:1:YbHologram(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);
本文标题:全息图matlab程序
链接地址:https://www.777doc.com/doc-5211243 .html