300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 角谱 matlab 关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica -

角谱 matlab 关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica -

时间:2023-04-25 10:54:11

相关推荐

角谱 matlab 关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica -

通过角谱法实现数字全息,程序语法没有错误,但就是重现出来的图是黑色一片,不知道什么问题,希望能有能人给我解答!最好能直接给出改进后的程序!!!

clc

clear

I11=(imread('1.bmp25.bmp'));

I1=double(I11(:,:,1));

%figure;imshow(I1,[]);axis on

I21=(imread('1.bmp65.bmp'));

I2=double(I21(:,:,1));

I31=(imread('1.bmp105.bmp'));

I3=double(I31(:,:,1));

I41=(imread('1.bmp145.bmp'));

I4=double(I41(:,:,1));

Ips=(I1+i*I2-I3-i*I4)/4;

%figure;imshow(abs(Ips),[])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Ips=(I1+i*I2-I3-i*I4)/4;

Ips=[zeros(79,768);Ips;zeros(113,768)];

L=7.68;

%figure;imshow(abs(Ips),[]);axis on

If=fftshift(fft2(Ips));

kk=768*3;

If1=zeros(kk,kk);

If1(kk/2-768/2+1:kk/2+768/2,kk/2-768/2+1:kk/2+768/2)=If;

II1=ifft2(ifftshift(If1));

%figure;imshow(abs(II1),[]);axis on

lamda=0.6328*10^-3;

k=2*pi/lamda;

a=1.007;

b=1;

zr=60;zo=zr-1.38;

deltax = L/kk;deltay = L/kk;

aa1=linspace(-L/2,L/2,kk);

aa2=linspace(-L/2,L/2,kk);

[x y]=meshgrid(aa1,aa2);

fx = x/(deltax*deltax*kk);fy = y/(deltay*deltay*kk);

H = exp(1i*k*zo*(1-lamda^2*(fx.^2+fy.^2)).^0.5);

R=exp(i*k*(zr.^2+x.^2/a+y.^2/b).^0.5)./(zr.^2+x.^2/a+y.^2/b).^0.5;

O=ifft2((fft2(II1.*R).*H));

figure;imshow((abs(fftshift(O))).^2,[0 4*10^6]);axis on

%figure;plot(1:2048,(abs(fftshift(O(:,1000)))).^2)

角谱 matlab 关于角谱法实现数字全息 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。