|
|
[求助]
大神们,求帮我看下我这个数字菲涅尔全息图的代码有什么事问题 已有1人参与
我这个主要思路是,用点云算法,myfresnel函数做菲涅尔变化。参考光为平面波,源图片的各个点模拟成点光源。算出来的结果不太对。原图片和结果图片在附件里
大家帮我看看,如果觉得太费眼,给我指点一些用matlab编写全息的书或者论文资料,也感激不尽。信息光学的书我看过了,不过那上面大多是大段原理公式,想找些有实例的书和资料。谢谢
% -------------------------------------------------------------------------
% 功能:读入物光光波振幅分布
[fname,pname] = uigetfile('*.*','读入物光光波振幅分布图象');
if pname
name = strcat(pname,fname);
Picture =im2bw( imread(name));
figure,imshow(Picture);title('物光光波振幅分布图像');
picture = Picture(:, ;
O = picture;
end
clear fname pname name picture Picture;
% 物光光波传播至全息面上的复振幅分布 (菲涅耳衍射)
wl = 632.8e-9; % 单色光波长(m)
z = 0.5; % 全息记录距离(m)
k = 2*pi/wl; %%波数
detaO = 2.65e-4; % 物光波场像素间隔(m)
detaH = 1.325e-4; % 衍射场光波像素间隔
y=repmat((512:-1:1)',1,512)-256.5;
R=10*exp(j*k*(z*cos(pi*10/180)+y*detaH*sin(pi*10/180)));%%平面参考光复振幅
tic;
uo=myfresnel(O,detaO,detaH,z,wl);% 物光光波传播至全息面上的复振幅分布(菲涅耳衍射)
toc
u=uo+R; %%在全息图上,物光波和参考光的复振幅相加
I=abs(u).^2;
figure,imshow(I,[]);
% -------------------------------------------------------------------------
function [ U ] = myfresnel(Object,DETA_O,DETA_H,Z,WL )
%%菲涅尔全息
%坐标轴和矩阵索引的转换:U(256.5-y,x+256.5)等于求xy坐标系中(n-256.5,256.5-m)
k = 2*pi/WL;
U=zeros(512,512);
Uo=0;
for x=-255.5:255.5
for y=-255.5:255.5
for x0=-127.5:127.5
for y0=-127.5:127.5
r=((DETA_H*x-DETA_O*x0)^2+(DETA_H*y-DETA_O*y0)^2+Z^2)^(1/2);
Uo=Uo+(Object(128.5-y0,128.5+x0)/r)*exp(j*k*r);
end
end
U(256.5-y,x+256.5)=Uo;
end
end![大神们,求帮我看下我这个数字菲涅尔全息图的代码有什么事问题]()
ABCDEF.jpg |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
- 附件 1 : 结果.fig
2014-05-22 10:15:50, 1.61 M
» 猜你喜欢
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有4人回复
让我中一个面上吧!
已经有15人回复
2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战
已经有5人回复
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有3人回复
售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急
已经有5人回复
售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急
已经有4人回复
售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急
已经有6人回复
售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急
已经有6人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有4人回复
售一区SCI文章T0P,我:8O.551.O54,科目全,可十急
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
|