计算全息图的制作及数字再现
计算全息图的制作及数字再现

计算全息图的制作及其数字再现物理科学与工程技术学院作者姓名:杨煦、杨康明指导老师:蔡志岗教授摘要:计算机制全息图是制作全息图的一种新技术,它是利用数字计算机来综合的全息图,它不需要物体的实际存在,而是把物波的数学描述输入计算机处理后,控制绘图仪输出或显示器显示二制成的全息图。
计算全息图的数字再现是利用计算机模拟光学全息的光路,仿真菲涅尔衍射、透镜傅里叶变换等光学过程从而在虚拟的观察屏上得到全息再现像。
关键词:计算全息数字再现一、引言:早在1965年,Kozman和Kelly就提出了计算机生成全息图(Computer Generated Holography,简称CGH)的概念,那时受计算机速度、容量和显示器分辨率等因素的约束,直到80年代中期以前计算机全息图的研究一直未取得大的进展。
国内对全息技术的研究主要集中在物理光学领域。
而目前由于计算机技术的发展以及计算机硬件的进步,已经可以制作空间带宽积很大的计算全息图,但是由于输出设备的精度问题,难以制作质量很高的全息图。
因此我们将以此为研究重点,希望从编码方法上有所突破,解决这个问题。
二、实验原理计算全息图的制作和再现过程主要分为以下几个步骤:1、抽样,得到物体或波面在离散样点上的值;2、计算,计算物光波在全息平面上的光场分布;3、编码,把全息平面上光波的复振幅分布编码成为全息图的透过率变化;4、成图,在计算机控制下,将全息图的透过率变化绘制成图,如果绘图设备分辨率不够,则绘制一个较大的图,再缩版到得到使用的全息图;5、再现,这一步骤与光学全息图的再现没有什么区别。
制作一个傅立叶变换全息图的典型流程如下:(一)、抽样抽样包括对输入图像的抽样和对全息图的抽样。
实际上,输入图像和全息图像的信号都是连续的。
而计算机只能对离散的数据进行处理,所以必须对物光和全息图像进行离散化,即抽样处理。
由空间带宽积的传递不变性可以知道,在全息图平面上的空间带宽积SW 应该和物体的空间带宽积SW 相等。
数字全息3D图像再现的方法论述

数字全息3D图像再现的方法论述本文以数字全息技术原理及相关理论作为出发点,分析了数字图象处理技术,并从相移数字全息原理和相移数字全息计算方法等方面探讨了基于相移数字全息技术的图像再现,以期为能够真实再现原物信息的全息显示技术提供一些参考和意见。
标签:数字全息;3D图象;相移数字全息数字全息技术相较于普通光学技术而言,具有成本低、灵活运用、速度快、储存空间大、实时处理等优势。
因此数字全息技术可以广泛运用于医疗美容、特征辨别、外貌检测和全息防伪等各种领域,对人们的生活和工作提供了极大的便利。
随着现代信息技术和网络技术在光学领域的普及与发展,许多学者就如何提高光能利用率和真色彩显示问题展开了相关讨论,并结合实际提出了最优方案策划,以达到实现图象质量的目的。
1 数字全息术相关技术理论(1)全息图的分类。
全息图根据不同的分类方法分为同轴全息图和离轴全息图两种类型。
就同轴全息图而言,如题1所示,一方面,同轴全息图具有光源低、稳定性高、光路简单、色差趋向小、记录介质分辨率高等优势。
另一方面,同轴全息图具有衬比度低、质量整体性不高、孪生全息像分辨率低、透明度效果差等劣势。
但是随着科学技术的发展以及网络信息化脚步的加快,同轴全息图的缺点利用科学技术平台得到大大改善。
通过科研人员线性记录可以得出同轴全息图振幅透过率为:假设AC表示全息图的再现光泼,在现光泼得出垂直照明全息图,如图2所示:衍射之后的光场表达公式为:由衍射之后的光场表达公式可以得出,公式的第一项表示为同轴全息图的零级衍射泼,公式的第二项也为同轴全息图的零级衍射泼,公式的第三项表示为同轴全息图的虚拟图象或者原始图形,公式的第四项表示为同轴全息图的实像,实像与虚拟图象构成孪生像。
(2)数字全息原理。
相较于传统全息技术而言,数字全息技术在介质上与传统全息技术有着本质的不同。
数字全息技术是数字化技术发展的产物,在一定程度上推动了数字化时代的进步。
另外,数字全息处理技术可以在光影平面内部实现数值模拟全息图像,并利用计算机作为有效载体实现全息图的再现。
第六计算全息

j
代入上式得
F ( )
f ( x) exp
j2
x) dx
j2 1
F ( )
f ( x) exp
j2
x) dx
j2 1
F ( ) f ( j ) sinc( x j) exp( j2x)dx
j
利用
sinc(cx) 1 rect( )和平移不变定理
c
c
sinc( x j)exp( j2x)dx
f jk f ( j x, ky) j, k 为单元的序数
k( y)
3 2 1
3 2 1 0 1 2 3
1
j( x)
2
3
k( y )
3 2 1
3 2 1 0 1 0 3
1
j( x )
2
3
取 x 1 y 1
J x x x
K y y y
JK SW x y
二、离散傅里叶变换。
1
2Bx 和
1 的抽样值唯一地确定。
2By
2、函数的还原
将抽样函数作为输入,加到一个低通滤波器上,只要抽样函数 的频谱不产生混叠,总可以选择一个适当的滤波函数,使 Fs( ,)
中,n=0,m=0的项无畸变地通过,而滤去其它各项,这时滤波 器的输出就是复原的原函数,这一过程可由下面框图示意。
f (x, y)
将复值函数变换为实值非负函数的编码方法可以归纳为两大类 第一种方法是把一个复值函数表示为两个实值非负函数,例如 用振幅和相位两个实参数表示一个复数,分别对振幅和相位进 行编码。
第二种方法是仿照光学全息的办法,如引入离轴参考光,通 过和物光波的干涉产生干涉条纹的强度分布,成为实值非负函 数,因此每个样点都是实的非负值,可以直接用实参数来表示
MATLAB实现计算全息

用MATLAB 软件和液晶光阀实现傅立叶变换计算全息制作及其再现姚雪灿指导教师 阎晓娜(上海大学理学院物理系,上海 200444)摘要:利用MATLAB 语言制作了一个迂回相位编码的傅立叶变换全息图,使用电寻址的液晶光阀作为全息图的实时记录介质对得到的傅立叶计算全息图进行光学再现,并对编码过程中加随机相位和不加随机相位后的再现图进行了比较讨论。
关键词:计算全息 傅立叶变换全息 MATLAB 液晶光阀 迂回相位编码全息制作包括二种方式,光学全息和计算全息。
光学全息用光学干涉原理制作,计算全息是用计算机对物波场的数学描述进行抽样、计算、编码而制作。
计算全息可以制作已存在物体的全息图,也可以制作不存在物体的全息图,只要物光波场可以用数学描述出来。
制作的计算全息图要以适合光学再现的尺寸和方式来输出。
由于计算全息图上每个抽样单元的尺寸在微米量级,需要专门的光学缩微照相系统或微光刻系统。
在要求较低情况下也可用照相机将显示在计算机屏幕或打印输出的计算全息原图缩拍到高分辨感光胶片上,通过显影、定影等处理得到可用于光学再现的全息图。
由于记录介质是照相胶片,这就限制了它在实时处理中的应用。
近年来,随着高分辨电寻址空间光调制器的发展,像元尺寸在微米量级,像素数超过100万的振幅型或相位型空间光调制器已经完全实用化。
其中最具代表性的是液晶光阀,电寻址的液晶光阀是由驱动电路驱动的LCD ,根据寻址电信号改变每一液晶像素的透过率,从而把电信号转换成空间的光强分布。
液晶光阀可以作为实时的信号处理和显示器件,代替全息干板可进行实现计算全息图的实时输出和再现。
本文提出一种利用电寻址液晶光阀作为实时记录介质的计算机制全息图的产生方法,实验结果证明了这种方法的可行性。
1 用Matlab 软件实现傅立叶变换计算全息图傅立叶变换全息记录的复数波面是物光波的傅立叶变换。
计算傅立叶变换全息图的制作包括:对物光波抽样、离散傅立叶变换、编码、画图、图像的输出。
数字全息术及其应用

数字全息术在安全监控、军事 侦察、通信加密等领域也有潜 在的应用价值。
未来发展方向
1
数字全息术需要进一步发展高分辨率和高灵敏度 的图像传感器和显示器,以提高图像质量和稳定 性。
2
数字全息术需要进一步研究高效的算法和计算技 术,以实现更快速的计算和数据处理。
3
数字全息术需要进一步探索与其他技术的结合, 如人工智能、机器学习等,以拓展应用领域和提 高应用效果。
防伪鉴别
利用数字全息技术可以生成具有唯一 性的光学防伪标签,用于产品的真伪 鉴别。
生物医学成像
显微成像
数字全息术可以用于显微成像,提供高分辨率的细胞和组织结构细节。
生物样品成像
利用数字全息技术可以对生物样品进行无损、无标记的成像,观察细胞和组织的结构和功能。
04
数字全息术面临的挑战与前 景
技术挑战
液晶显示生成全息术的优点在于其低成本和易于集成,适用于需要小型化和轻量 化的场合。此外,液晶显示还可以与其他技术相结合,如柔性显示技术等,实现 可弯曲的全息显示。
03
数字全息术的应用领域
光学信息处理
光学图像处理
数字全息术能够用于光学图像的 处理,包括图像增强、去噪、复 原等,提高图像的清晰度和质量 。
06
数字全息术的实际应用案例
数字全息术的实际应用案例 在光学信息处理中的应用案例
光学信息处理
数字全息术在光学信息处理领域的应用包括全息干涉计量、全息光学元件、全息存储器 等。通过数字全息技术,可以实现高精度、高分辨率的光学信息处理和存储,提高光学
系统的性能和稳定性。
3D显示
数字全息术在3D显示领域的应用包括全息投影和全息电视等。通过数字全息技术,可 以实现高清晰度、高逼真的3D显示,为观众提供沉浸式的视觉体验。
第6章 计算全息

b(
x x
)com
b(
y y
)
F
(
,
)
xycomb(x )comb(y) F( ,)
( n , m ) F ( ,)
n m
x y
F ( n , m )
n m
x y
它是由 函数的阵列构成
fs
(
x,
y)
comb(
x x
)comb(
y y
)
f
(
x,Βιβλιοθήκη y) x y f (n x, m y) ( x n x, y m y) n m
§6-1计算全息原理
利用卷积定理得抽样函数的频谱
Fs ( ,)
com
计算全息的主要应用范围:
① 二维和三维物体像的显示
② 在光学信息处理中用计算全息制作各种空间滤波器
③产生特定波面用于全息干涉计量 ④ 激光扫描器 ⑤ 数据存贮
计算全息图的制作和再现过程的主要步骤:
① 抽样:得到物体或波面在离散样点上的值 ② 计算:计算物光波在全息平面上的光场分布 ③ 编码:把全息平面上光波的复振幅分布编码成全息图的透过率
第六章 计算全息
第六章 计算全息
概述
什么叫计算全息
借助参考光,利用光的干涉原理,可以将物光的复振幅 (振幅和相位)以干涉条纹的形式记录下来。我们可以称之 为光学编码的方法。
如果不用光学的方法而是用人工的方法进行编码制作全息 图,这就是计算全息图(Computer-generated Hologram)。
11
x 2 x
空间域 的抽样间隔是 x 和 y ,空间频谱被重复的频谱中
实验数字全息及实时光学再现实验

无透镜傅里叶变换全息的优点 记录光路结构简单; 能够充分利用CCD的有限带宽 ; 允许的最小记录距离与被测量物体的大小成正比; 强度再现像准确、重建速度快;
实验内容与步骤
本实验系统对全息技术做出了全面地展示,具体有一定前沿性和综合性。如果 从全息角度区分,实验内容包括计算机模拟全息、数字全息、可视数字全息、 实时传统全息。如果从记录方式和光学再现方式的角度区分,实验内容可分为 数字记录,数字再现;光学记录,数字再现;数字记录,光学再现;光学记录 、光学再现。图—给出了实验内容的整体规划示意图。
北京工大
实验目的
1、 理解数字记录、光学记录、数字再现、光学实时再现 2、 理解计算模拟全息原理,实现数字记录,数字再现 3、 理解可视数字全息原理,在空间光调制器上加载计算模拟全 息图,利用再现光路恢复物信息,实现数字记录,光学再现 4、 理解实时传统全息实验原理,了解与传统全息之间的异同, 通过空间光调制器再现全息图,完成光学记录,光学再现 5、 探究数字全息在测量方面的应用
实共轭像复振幅
u1(xi ,
yi
)
exp
jk
2
z0
( xi
xr
)2
( yi
yr
)2
J1(xi ,
yi )
J1(xi , yi )
O ( fx ,
jk
f
y
)
R0
exp
2
z0
( xr2
yr2
)
exp
jk z0
O (
fx,
f y )R0
一种基于图像的全息图计算方法及其模拟重现

的曲线表示三维物体的傅里叶频谱成分 (也就是产生全息图的
基本成分 ) ,而白色的直线表示在投影角度为 (θi, 0) 处拍摄的 投影图像的傅里叶成分 ,两条线的交点就是所要提取的成分 。
由于只考虑水平视差 ,根据上面的式 (8)我们得到 :
图 2 投影图像傅立叶频谱分布图
µ F ( u, v) =
O1 ( x, y, z)δ( v - y) exp
布 (投影角要符合逼近规则 ) 。
事实上 ,将某个投影方向上的图像进行傅立叶变换后 ,根据
关系式 ui = 2θf i , vj = 2f<j 提取出对应的 ui , vj ,再将所有投影 方向上提取的傅立叶频谱成分合成全息图 。下面以一个具体例
子来说明这种全息图的生成方法 。
为简单起见 ,下面仅考虑水平视差情况 ,即令 : u = 2θf i, <j = 0 ,由投影图像获得的傅立叶平面如图 2所示 。图 2中 ,黑色
xij = co sθi x - sinθi z
yij = - sinθi sin<j x + cos<j y - cosθi sin<j z
(5)
将上面的关系式带入式 (2)中有 :
µ O3 ( uij, vij ) = O1 ( x, y, z) exp { - 2πi[ ( uij - viθj i <j ) x +
-
i2π λ
ux f
-
u2 z 2f2
dxdydz
(9)
这样 ,全息图就以一个复值函数的形式存储在计算机中 ,我
们可以用数值计算的办法通过计算机模拟重构出原来重构出图像 ,必须用全息
图数据来调制全息记录介质 ,然而很多记录介质无法直接用复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算全息图的制作及数字再现-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN计算全息图的制作及其数字再现物理科学与工程技术学院作者姓名:杨煦、杨康明指导老师:蔡志岗教授摘要:计算机制全息图是制作全息图的一种新技术,它是利用数字计算机来综合的全息图,它不需要物体的实际存在,而是把物波的数学描述输入计算机处理后,控制绘图仪输出或显示器显示二制成的全息图。
计算全息图的数字再现是利用计算机模拟光学全息的光路,仿真菲涅尔衍射、透镜傅里叶变换等光学过程从而在虚拟的观察屏上得到全息再现像。
关键词:计算全息数字再现一、引言:早在1965年,Kozman和Kelly就提出了计算机生成全息图(Computer Generated Holography,简称CGH)的概念,那时受计算机速度、容量和显示器分辨率等因素的约束,直到80年代中期以前计算机全息图的研究一直未取得大的进展。
国内对全息技术的研究主要集中在物理光学领域。
而目前由于计算机技术的发展以及计算机硬件的进步,已经可以制作空间带宽积很大的计算全息图,但是由于输出设备的精度问题,难以制作质量很高的全息图。
因此我们将以此为研究重点,希望从编码方法上有所突破,解决这个问题。
二、实验原理计算全息图的制作和再现过程主要分为以下几个步骤:1、抽样,得到物体或波面在离散样点上的值;2、计算,计算物光波在全息平面上的光场分布;3、编码,把全息平面上光波的复振幅分布编码成为全息图的透过率变化;4、成图,在计算机控制下,将全息图的透过率变化绘制成图,如果绘图设备分辨率不够,则绘制一个较大的图,再缩版到得到使用的全息图;5、再现,这一步骤与光学全息图的再现没有什么区别。
制作一个傅立叶变换全息图的典型流程如下:(一)、抽样抽样包括对输入图像的抽样和对全息图的抽样。
实际上,输入图像和全息图像的信号都是连续的。
而计算机只能对离散的数据进行处理,所以必须对物光和全息图像进行离散化,即抽样处理。
由空间带宽积的传递不变性可以知道,在全息图平面上的空间带宽积SW 应该和物体的空间带宽积SW 相等。
换句话说,全息图上的抽样数(可分辨单元数)要等于(或大于)输入图像的抽样数。
于是我们可方便地确定在计算机全息图制作时,输入图像和全息图平面上应该具有的抽样点数总数,即2()N x v =∆∆。
其中2()x ∆是输入图像的面积,2()v ∆是其频带面积。
另外,给出一幅图像,如何知道其带宽呢由于成像系统是低通滤波器,其传递图像的最高频率是有限的,存在着截止频率,故得到的图像可近似地看作限带的,输入图像的带宽可近似地用光学通道(包括接收器)的截止频率来表示。
还有一种方法是用空间局部频率的概念来定义带宽:由空间局部频率出发,可以来定义物波函数的带宽。
定义:物波函数在x 、y 方向的带宽分别为Bx ,By 。
max2(,)x W x y B x λ⎛∂⎫= ⎪∂⎝⎭ max2(,)y W x y B y λ⎛⎫∂= ⎪∂⎝⎭ 即用空间局部频率的最大值的两倍来表示物波函数的带宽。
这是一种有效的近似处理。
一般地,以图片格式存储在计算机里面的图像已经是图像抽样之后的离散数据了。
我们只需要知道图像的尺寸和其空间带宽积,这样便可以换算出原图像的抽样间隔和全息图的抽样间隔。
所以以图片格式存储的图像我们一般不必再作抽样处理。
如果图像是以其他连续形式格式存储的话,就需要对图像进行抽样。
(二)、计算计算图像的全息图的过程,是运用物理定律求出全息平面上的复振幅分布的过程,运用计算机模拟光的传播、衍射、干涉,得到全息平面上的复振幅分布。
具体计算时,常会用到傅立叶变换、菲涅尔衍射公式等等。
计算机全息中运用的是经典的标量波衍射理论。
这一理论把光波看作标量波来处理,能很好地解释全息过程。
理论里面涉及到的公式一般是连续形式的。
计算机要运用这些理论必须把输入量、输出量和公式三者都离散化。
输入和输出量的离散化由前面的抽样方法实现。
公式的离散化则是数值计算关心的问题。
然而得到离散化后的公式与原来的公式并不完全等价。
用计算机制作的全息图,经常需要用到傅立叶变换算法。
计算机里面常用的傅立叶算法是快速傅立叶变换算法(FFT)。
离散形式的傅立叶变换和连续傅立叶变换并不完全相同。
(三)、编码由于前面计算得到的只是全息平面上的复振幅分布。
而实际上的全息图一般是透过率的分布(振幅型)、折射率的分布(相位型)和厚度分布(相位型)等等。
这些分布涉及到的参数都是正的实数,所以必须把复数的复振幅变换到对应的正实数参数,这就是编码过程。
在光全息中,用底片记录全息平面的光强就是把复振幅以光强的形式进行编码。
而在计算全息中,编码的方法则很灵活。
下面介绍一种传统的编码方法:罗曼III编码。
1、迂回相位效应迂回相位效应是不规则光栅的衍射效应。
考虑一个规则的二元光栅,光栅周期为d,如图1(a)。
(a)规则二元光栅 (b)某条纹发生移动后的二元光栅图1 迂回相位效应示意图对规则光栅某一级衍射相邻两条光线的光程差为。
若光栅的某个条纹发生p 的位移,如图1(b),则该处的光程差变为,比原来增加了光程差。
结合光栅方程,条纹变动处有相位变化。
这个附加的相位便是迂回相位。
可以看到,迂回相位跟波长无光,跟光的入射角出射角也无关,只跟衍射级、光栅常数、附加位移有关。
利用迂回相位效应,控制条纹的附加位移,就可以实现对波面的控制。
2、罗曼III编码的编码方法罗曼III编码就是应用迂回相位效应来进行编码的。
具体编码过程如下:通过前面“计算”这一个步骤,可以得到全息平面上的离散的复振幅分布。
现在把每个离散点作为一个全息像元,如图2。
像元的宽和高分别为du和dv(抽样间隔)。
像元内有一宽W高H的矩形孔。
宽度方向矩形孔的中心偏离像元中心的距离为P,而高度方向两者中心同高。
除了矩形孔内部之外,像元的其它位置都不可以透光。
根据迂回相位效应,把每个矩形孔当作是一个条纹,用矩形孔的面积调制复振幅的绝对值(强度),矩形孔的位置调制复振幅的复角(相位),这便是罗曼III编码的方法。
首先求出全息平面上每个离散点的复振幅的绝对值,然后对其归一化得到归一化后的振幅值A,再求出复振幅的复角,接着用这些振幅值A和复角分别对每个像元内的矩形孔的高度和宽度进行调制。
假设要在第M级衍射光中得到最亮的像,就要使,,。
这样操作后,就得到了一张罗曼III编码的全息图。
图2 罗曼III编码示意图在具体操作的时候,可能会遇到矩形孔超出像元的情况,此时要进行“模式溢出校正”。
“模式溢出校正法”就是把溢出部分的矩形孔循环移动到像元的另一侧(如图3)。
图3 模式溢出校正这样操作即可以保证每个像元的透光面积保持不变,又可以不影响相位的调制,因为像元左右边界的相位差是。
由于矩形孔衍射的原因,这样编码得到的再现图的亮度并不均匀。
这种不均匀可以通过对输入图像的强度乘以一个sinc因子来改善。
还有一个问题需要注意。
前面迂回相位的推导并不严格。
如图4所示,光栅条纹移动后,实际上C和C’已经不是同一点了。
真正的附加光程并不是C与C’点光线的光程差,而应该是C’点光线与C’点在原来规则光栅同一位置处的光线的光程差。
图4 迂回效应的进一步说明图也就是说,罗曼III 编码中迂回相位不是相对于像元中心处的相位而附加上的量,而应该是相对于矩形孔移动后的中心处位置的相位而附加的量。
(四)、绘制和照相得到了编码后的全息图像,可以用绘图仪或打印机复制到胶片上显示出来,然后把图像通过微缩照相缩小到合适的尺寸,以达到足够高的分辨率。
或者用高分辨率的空间光调制器直接调制图像。
(五)、再现通过上面方法得到的计算机全息图,可以用光全息图的再现方法来再现。
除了光学再现外,还有一种再现——数字再现。
这方法是利用计算得到的全息图数据,通过计算机模拟光学再现系统,最后在计算机中计算出再现图像,实现全息图的再现。
(六)、全息图的数字再现数字再现的实际上就是模拟光在光学系统里传播。
全息图的数字再现过程包括全息图的衍射和透镜的变换等过程。
在许多光学教科书上都可以找到菲涅尔衍射公式()221001()2200111111(,)(,)exp ikz i x y z e E x y e F E x y i x y i z z πλπλλ+⎧⎫⎡⎤⎪⎪=+⎨⎬⎢⎥⎪⎪⎣⎦⎩⎭其中,F 代表傅立叶变换,是输入面复振幅,是输出面复振幅,是两平面的距离,k 为光波波矢,λ为光波波长。
还有透镜的透射系数公式221111exp2(,)x yikft x y⎧⎛⎫+-⎪ ⎪=⎨⎝⎭⎪⎩孔径内孔径外其中f为透镜的焦距。
后文涉及到的全息图都是傅立叶变换全息图,所以其再现光学系统就只是一个傅立叶透镜。
把全息图放在透镜的前焦面,在后焦面上便得到其再现图像。
再现过程如图5。
图5 数字再现过程图把前面编码后的全息图数据作为输入复振幅数据,经过一次菲涅尔衍射运算后,把得到的复振幅分布乘以透镜的透射系数,然后再经过一次菲涅尔衍射运算,在再现屏幕上便得到再现像的复振幅分布,取其模的平方,就可以得到再现图像。
数字再现的程序见附录1。
要强调的是,这里模拟的是一个理想的共轴光学系统,有许多实际因素(如:透镜的像差、离轴情况)并没有考虑。
三、实验制作计算机全息图及其数字再现罗曼III编码傅立叶变换全息图的计算的程序用Matlab来编写的,具体程序代码见附录2。
程序的过程大致是:先读入图像,把图像变为灰度图,并且给图像加上随机相位。
这样做是原因是若直接对图像作傅里叶变换,会使得归一化的振幅变化很快。
读入的图像加上随机相位处理(作用类似于光学实验中给光源加上毛玻璃),能使图像经过傅里叶变换后,振幅的变化变缓慢,而再现的时候又不会影响光强的分布。
接着对图像进行二维的快速傅立叶变换。
然后用罗曼III编码算法进行编码。
编码过程只引入了“模式溢出校正”,没有引入其他的校正。
最后把全息图显示在屏幕上,得到的全息图保存为图片格式。
利用计算机模拟光学全息的光路,仿真菲涅尔衍射、透镜傅里叶变换等光学过程从而在虚拟的观察屏上得到全息再现像。
图6 计算全息的数字再现实验中选用的对象是高宽都为32像素汉字:占。
选取这个字主要是因为他方向性强,仅含有横竖两种笔画,便于观察不同像元大小对全息再现的影响。
以下为调节像元大小为不同值时的全息编码图以及再现图。
图7 du=1,dv=1图8 du=16,dv=16图9 du=32,dv=32图10 du=8,dv=36附录:1.全息图的数字再现Matlab程序文件名:% 本程序是输入一幅图像,求z1距离后的面上菲涅尔衍射场的场分布% 入射光波长lambada,单位m% E1为输入图像代表的矩阵% E0为输出图像代表的矩阵% deltaX1为输入图像横向的宽度,单位m% deltaY1为输入图像纵向的宽度,单位m% deltaX0为输出图像横向的宽度,单位m% deltaY0为输出图像纵向的宽度,单位m% z1输入图像与衍射平面的距离,单位mfunction [E0,deltaX0,deltaY0]=Fresnel(lambada,E1,deltaX1,deltaY1,z1) [ny,nx]=size(E1);[x0,y0]=meshgrid(-(nx-1)/2:(nx-1)/2,-(ny-1)/2:(ny-1)/2);dx1=deltaX1/nx;dy1=deltaY1/ny;dx0=lambada*z1/deltaX1;dy0=lambada*z1/deltaY1;x0=x0*dx0;y0=y0*dy0;c=exp(i*2*pi/lambada*z1)/(i*lambada*z1)*exp(i*pi*(x0.^2+y0.^2)/lambad a/z1); % 相关的系数,参考菲涅尔衍射公式for p=1:nxfor q=1:nyE(q,p)=E1(q,p)*exp(i*pi/lambada/z1*((dx1*(p-(nx+1)/2))^2+(dy1*(q-(ny+1)/2))^2)); % 相关的计算,参考菲涅尔衍射公式endendE=fftshift(E); % 把数据作“平移”到第一象限作处理(其实是把图像作周期延拓,再取第一象限的那个周期)Etemp=fftshift(fft2(E)); % 把傅立叶变换谱的零频率移动到中心E0=c.*Etemp; % 参考菲涅尔衍射公式deltaX0=dx0*nx;deltaY0=dy0*ny;文件名:% 透镜输入输出面分别紧靠在透镜的两侧,认为输入和输出面之间的距离为零% 透镜的中心在光轴上,透镜所在平面与光轴垂直% 入射光波长lambada,单位m% E1为输入图像代表的矩阵% E0为输出图像代表的矩阵% deltaX1为输入图像横向的宽度,单位m% deltaY1为输入图像纵向的宽度,单位m% F为透镜的焦距,单位m% aperture为透镜的孔径,单位mfunction E0=lens(lambada,E1,deltaX1,deltaY1,F,aperture)[ny,nx]=size(E1); % 对一幅图片,纵向对应图片矩阵的行(ny),横向对应矩阵的列(nx)dx=deltaX1/nx;dy=deltaY1/ny;[x,y]=meshgrid(-(nx-1)/2:(nx-1)/2,-(ny-1)/2:(ny-1)/2);x=x*dx;y=y*dy;I=find(x.^2+y.^2>(aperture/2).^2);x(I)=0;y(I)=0;E0=E1.*exp(-i*pi*(x.^2+y.^2)/lambada/F); % 透镜的复透射系数公式文件名:clear;lambada=;p=imread('j:\hologram datas\'); %全息图所在的路径p=rgb2gray(p);%figure;%imshow(p);p0=double(p);deltaX=1e-2; % 全息图宽(m)deltaY=1e-2; % 全息图高(m)F=27e-2; % 焦距(m)aperture=10e-2; % 孔径(m)obj=F;img=F;[p1,U,V]=Fresnel(lambada,p0,deltaX,deltaY,obj); % 第一次菲涅尔衍射p2=lens(lambada,p1,U,V,F,aperture); % 经过透镜[p3,U,V]=Fresnel(lambada,p2,U,V,img); % 第二次菲涅尔衍射pout=p3;pout=abs(pout);pout=pout/max(max(pout));figureimshow(pout*100);axis onxlabel(U);ylabel(V);2.罗曼III编码制作二维傅立叶全息图的matlab程序clear;close;%%%%%%%%%%%%%%%%%%% 参数输入区 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% p0=imread('c:\'); % 读入图像du=1; %全息图像素x方向的间隔dv=1; %全息图像素y方向的间隔M=1; %希望在第几级衍射光中得到图像(这里选择了第一级) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p1=rgb2gray(p0); %图像变为灰度图像p1=p0; %%%%%%%%%%%%%%%%%%%%%%%%%% 暂时使用 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%figure;imshow(p1); %显示灰度图象p2=double(p1);[nx,ny]=size(p2); %得到图像的大小mx,ny,并且把每个像素作为一个抽样点p3=p2.*exp(i*2*pi*rand(nx,ny)); %对图片附加随机的相位fftp3=fftshift(fft2(fftshift(p3))); %对图像进行二维傅里叶变换amplitude=abs(fftp3); %得到复振幅的振幅值phase=angle(fftp3); %得到复振幅的相位值amplitude=amplitude/max(max(amplitude)); %归一化H=amplitude*dv; %矩孔的高度P=phase/(2*pi*M)*du; %矩孔中心与抽样区中心的偏移距离W=M*du; %矩孔的宽度normal=find(abs(P+sign(P).*W/2)<=du/2); %得到矩孔不用模式溢出校正的序号leftOF=find((P-W/2)<(-du/2)); %得到矩孔左边溢出的序号rightOF=find((P+W/2)>(du/2)); %得到矩孔右边溢出的序号uleft=zeros(nx,ny); %矩孔左侧坐标uright=zeros(nx,ny); %矩孔右侧坐标vup=zeros(nx,ny); %矩孔上侧坐标vdown=zeros(nx,ny); %矩孔下侧坐标mark=zeros(nx,ny);mark(normal)=1; %标志那些位置没有溢出%%% 先求出所有的矩孔四个边相对抽样区中心的偏移量vup=H/2; %矩孔的上边界vdown=-H/2; %矩孔的下边界uleft(normal)=P(normal)-W/2; %没有溢出矩孔的左边界uright(normal)=P(normal)+W/2; %没有溢出矩孔的右边界%矩孔溢出,要分成两块,但是中间的白色块也是一个矩形,所以表示白色的矩形块uleft(leftOF)=P(leftOF)+W/2; %白色矩形块左边界uright(leftOF)=P(leftOF)-W/2+du; %白色矩形块右边界uleft(rightOF)=P(rightOF)+W/2-du; %白色矩形块左边界uright(rightOF)=P(rightOF)-W/2; %白色矩形块右边界%%% 实现模式溢出的校正及画图figure;axis([0 nx 0 ny]);hold on;for nu=1:nxu0=*du; %实际的抽样区中心for nv=1:nyv0=*dv; %实际的抽样区中心ul=u0+uleft(nu,nv); %附加上偏移量ur=u0+uright(nu,nv);vu=v0+vup(nu,nv);vd=v0+vdown(nu,nv);if mark(nu,nv)fill([ul,ul,ur,ur],[vd,vu,vu,vd],'k'); %画出没有溢出的矩孔elseu1=*du;u2=u0+*du;fill([u1,u1,ul,ul],[vd,vu,vu,vd],'k'); %画出有溢出的矩孔fill([ur,ur,u2,u2],[vd,vu,vu,vd],'k');end endendhold offaxis('auto'); axis off;。