本文共 1032 字,大约阅读时间需要 3 分钟。
%%%多光谱夫琅禾费衍射%j经过验证只要按照三维矩阵方式计算出了RGB的分量就能正常显示RGB图像lamr=650e-9;lamg=520e-9;lamb=450e-9;f=0.3;%定义波长以及透镜长度xmax=0.025e-4;ymax=0.025e-4;sinix=0;siniy=0;%定义矩形孔尺寸以及x,y轴偏移量cx=0.3;cy=0.3;%观察屏尺寸N=10e2;x=linspace(-xmax,xmax,N);y=linspace(-ymax,ymax,N);%如果采用积分法需要使用的光源坐标坐标x1=linspace(-cx,cx,N);y1=linspace(-cy,cy,N);%观察屏坐标numx=length(x);numy=length(y);I=zeros(numx,numy,3);%定义三色矩阵ticfor t=1:numx for tt=1:numy alphar=pi*2*xmax/lamr*(x1(t)/f-sinix); alphag=pi*2*xmax/lamg*(x1(t)/f-sinix); alphab=pi*2*xmax/lamb*(x1(t)/f-sinix); betar=pi*2*xmax/lamr*(x1(tt)/f-siniy); betag=pi*2*xmax/lamg*(x1(tt)/f-siniy); betab=pi*2*xmax/lamb*(x1(tt)/f-siniy); I(t,tt,1)=(sin(alphar)/alphar)^2*(sin(betar)/betar)^2; I(t,tt,2)=(sin(alphag)/alphag)^2*(sin(betag)/betag)^2; I(t,tt,3)=(sin(alphab)/alphab)^2*(sin(betab)/betab)^2; endend I=I/max(max(max(I))); toc imshow(255*I) %最后这一步最重要,因为有了他图像才得到拉伸,在外面乘是不行的,还就得 %在表达式里,否则图像是糊的
最大的一坑就是不知道这个图像拉伸需要乘255,搞了半天以为自己有问题
留此纪念 最后上一点图转载地址:http://wmhrn.baihongyu.com/