基于强度传输方程法相位恢复技术实例演示

一、引言

CCD相机无法直接记录相位分布。因此,如何通过测量的强度信息来恢复相位信息,即对相位恢复技术的研究尤为重要。

在这里插入图片描述

图 1 相位恢复技术的重要性示意图[1]

目前,基于强度传输方程(Transport of Intensity Equation, TIE)的相位恢复技术已广泛应用于三维重建、光学显微成像、全息技术、衍射光学和光学测量等众多领域,解决了这些领域的许多研究问题。

二、强度传输方程的推导

假设一束单色光沿着z轴自由传播,其复振幅的表示形式可以写为

在这里插入图片描述
其中, U ( x , y , z ) U\left( x,y,z \right) U(x,y,z)为光场复振幅, I ( x , y , z ) I\left( x,y,z \right) I(x,y,z)为光场强度, φ ( x , y , z ) \varphi \left( x,y,z \right) φ(x,y,z)为光场相位。那么在傍轴近似的条件下,光场的传播满足下面抛物线方程:

在这里插入图片描述

其中 ∂ z = ∂ / ∂ z    {{\partial }_{z}}={\partial }/{\partial z}\; z=/z代表沿z方向的强度分布的变化量,

在这里插入图片描述
表示梯度算子

表示二维拉普拉斯算子,k为波数,与波长λ之间满足k=2π/λ。分别对 U ( x , y , z ) U\left( x,y,z \right) U(x,y,z) 在(x,y,z)方向上求一维偏导数;

在这里插入图片描述
分别对 U ( x , y , z ) U\left( x,y,z \right) U(x,y,z)在x,y方向上求二维偏导数;

在这里插入图片描述
先求 U ( x , y , z ) U\left( x,y,z \right) U(x,y,z)的共轭函数 U ∗ ( x , y , z ) {{U}^{*}}\left( x,y,z \right) U(x,y,z)

在这里插入图片描述
U ∗ ( x , y , z ) {{U}^{*}}\left( x,y,z \right) U(x,y,z)左乘公式(2)得

在这里插入图片描述
U ( x , y , z ) U\left( x,y,z \right) U(x,y,z)左乘公式(4)

在这里插入图片描述
用式(6)减去式(7)得:
在这里插入图片描述
化简可得:

在这里插入图片描述
将式(9)进一步化简整理得:

在这里插入图片描述
公式(10)即是推导出的强度传输方程,该方程指出,明确了强度分布以及光轴方向上的强度微分两项重要信息以后,接下来就可以对于二阶偏微分方程进行求解,最终可以得到位置z具体的平面相位分布信息。一般来说,可以采用两个或者两个以上的散焦图像,通过有限差分的方式来对于轴向微分进行预测。

三、强度传输方程的求解

关于强度传输方程的求解,较常用到有傅里叶解法、多重网格方法、格林函数方法以及把扩展成多项式方法等。我们主要介绍的是如何采用傅里叶来进行推导,这种方法可以运用在两种情况下,一种是光波场强度分布均匀的情况,还有一种是非均匀情况。

当强度分布均匀的时候,即I等于常数时,可以通过傅里叶变换有效求解强度传输方程,公式(10)简化为:
在这里插入图片描述
公式(11)是一个泊松方程,可以利用傅里叶变换求解两次泊松方程得到相位[2]:

在这里插入图片描述
当待测光波场强度分布不均匀时,Paganin 等将傅里叶求解方法进行了拓展,其通过将辅助函数引入方程求解过程中,这样再求解公式(11)得到的相位如下:
在这里插入图片描述
其中
在这里插入图片描述
f x {{f}_{x}} fx f y {{f}_{y}} fy表示频率域坐标。

公式(12)和式(13)中都有强度轴向微分 ∂ I / ∂ z    {\partial I}/{\partial z}\; I/z 这一项,通常情况下强度轴向微分都是用有限差分法近似得到:

在这里插入图片描述
式中z0为传播距离, I ( x , y , z 0 + Δ z ) I\left( x,y,{{z}_{0}}+\Delta z \right) I(x,y,z0+Δz) I ( x , y , z 0 − Δ z ) I\left( x,y,{{z}_{0}}-\Delta z \right) I(x,y,z0Δz)分别为记录面 z 0 + Δ z {{z}_{0}}+\Delta z z0+Δz z 0 − Δ z {{z}_{0}}-\Delta z z0Δz距离处的强度分布, Δ z \Delta z Δz为距离步长。

这种简洁有效的求解方案让强度传输方程可以运用在许多领域中,这种利用傅里叶变换来实现的求解方案也成为了运用最多的一种数值解法。

四、仿真模拟分析

模拟仿真原理如下图所示:

在这里插入图片描述

图 2 仿真光路结构示意图

图3给出了一个仿真的初始相位

在这里插入图片描述

图 3 初始物体相位

在距离z1和z2处拍摄了两幅图像,分别如图4(a)(b)所示:

在这里插入图片描述

图 4 距离z1与Z2处模拟生成的强度图

两幅图像强度差如下图所示:
在这里插入图片描述

图 5 强度差

图6给出基于强度的相位恢复的相位图

在这里插入图片描述

图 6 恢复的相位

五、资源获取

上述资源可从以下链接处获取:

https://download.csdn.net/download/qq_36584460/84989831

参考文献

[1] 王金成. 基于强度传输方程的层析重建研究[D]: 安徽大学, 2020.
[2] 吴海燕. 非干涉光场的相位恢复算法研究[D]: 安徽大学, 2012.


如有疑问,可私信交流!简单光学技术组可提供相关技术支持!

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 好的,以下是一个简单的 MATLAB 程序,实现了利用光强传输方程恢复相位的功能: ``` % 定义光强传输方程(理想情况下) function I = intensity_transfer_equation(phase) I = abs(exp(1i * phase)); end % 定义一个模拟的相位场 true_phase = linspace(0, 2 * pi, 100); true_intensity = intensity_transfer_equation(true_phase); % 加入一些噪声 observed_intensity = true_intensity + 0.1 * randn(size(true_intensity)); % 利用光强传输方程恢复相位 recovered_phase = angle(observed_intensity); % 画出恢复相位与真实的相位的对比图 plot(true_phase, true_intensity, 'b', ... true_phase, observed_intensity, 'ro', ... true_phase, intensity_transfer_equation(recovered_phase), 'g--'); legend('真实光强', '观察到的光强', '恢复的光强'); xlabel('相位'); ylabel('光强'); ``` 这段程序模拟了一个理想的光强传输方程,并且生成了一个模拟的相位场。接着,它加入了一些随机噪声,模拟了相位场的观察。最后,它利用光强传输方程恢复相位场,并且画出了真实的相位场、观察到的光强以及恢复的光强的对比图。 ### 回答2: 利用光强传输方程恢复相位的MATLAB程序如下: ```matlab % 假设原始图像为I,相位信息为phi,光传播距离为d I = imread('原始图像.jpg'); phi = 2 * pi * rand(size(I)); % 随机生成相位信息 d = 10; % 光传播距离,单位为像素 % 进行光传输 J = I .* exp(1i * phi * d); % 恢复相位 phi_recover = angle(J) / d; % 显示结果 subplot(1, 2, 1); imshow(I); title('原始图像'); subplot(1, 2, 2); imshow(phi_recover, []); title('恢复相位'); % 保存结果 imwrite(phi_recover, '恢复后的相位.jpg'); ``` 在这个程序中,我们假设原始图像为`I`,使用`rand`函数生成一个与原始图像相同大小的随机相位信息`phi`。然后,通过将原始图像乘以一个复数指数以及相位信息,实现光传输。光传输的距离由变量`d`表示。接下来,我们恢复相位信息,通过求解复数图像`J`的角度,并将结果除以光传播距离。最后,我们将原始图像和恢复相位信息进行显示,并将恢复相位信息保存为图片。 请注意,在实际应用中,要使用光强传输方程进行相位恢复,可能需要更复杂的处理步骤和采样策略。此处提供的代码仅是一个简单的示例,需要根据具体应用进行适当的修改和调整。 ### 回答3: 可以通过以下步骤编写一个利用光强传输方程恢复相位的MATLAB程序: 1. 首先,导入图像。使用MATLAB的imread函数读取一个图像,将其转换为灰度图像。 2. 然后,为图像添加一个已知的相位畸变。可以通过创建一个二维网格矩阵,根据所需的相位畸变模式在每个像素位置上添加一个相位值来实现。 3. 接下来,计算输入图像的傅里叶变换。使用MATLAB的fft2函数对灰度图像进行二维快速傅里叶变换,得到输入图像的频谱。 4. 然后,通过光强传输方程计算频谱的相位。利用光强传输方程,将频谱的光强和已知的相位畸变相乘,得到修正后的频谱。 5. 接下来,计算修正后频谱的逆傅里叶变换。使用MATLAB的ifft2函数对修正后的频谱进行二维逆傅里叶变换,得到修正后的图像。 6. 最后,显示原始图像和修正后的图像。使用MATLAB的imshow函数分别显示原始图像和修正后的图像,以进行比较。 整个MATLAB程序的代码如下: ```MATLAB % 步骤1:导入图像 img = imread('image.jpg'); gray_img = rgb2gray(img); % 步骤2:添加相位畸变 [rows, cols] = size(gray_img); [X, Y] = meshgrid(1:cols, 1:rows); phase_distortion = sin(X/10) + sin(Y/10); % 根据需要调整相位畸变模式 % 步骤3:计算输入图像的傅里叶变换 spectrum = fft2(double(gray_img)); % 步骤4:计算频谱的相位 corrected_spectrum = abs(spectrum) .* exp(1i * phase_distortion); % 步骤5:计算修正后频谱的逆傅里叶变换 corrected_img = abs(ifft2(corrected_spectrum)); % 步骤6:显示原始图像和修正后图像 subplot(1,2,1); imshow(gray_img); title('原始图像'); subplot(1,2,2); imshow(corrected_img, []); title('修正后的图像'); ``` 请注意,上述程序只是一个简单的示例,具体的相位恢复可能因应用而异。您可以根据自己的需求以及图像的特点进行相应的改进。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单光学

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值