我需要在 MATLAB 中对没有点扩散函数的荧光珠图像进行反卷积

计算科学 matlab 算法
2021-12-26 10:55:57

我知道我可以使用反卷积算法,例如LUCYWeinerBlind,但我对如何估计 LUCY 和 Weiner 算法所需的 PSF(点扩散函数)感到困惑。我目前正在使用宽场荧光显微镜设置。

我在互联网上的很多地方都读到了一个荧光珠,它代表一个亚分辨率对象,因此是一个脉冲函数。虽然我知道 OTF(光学传递函数)由我得到的图像表示,但我如何叠加以使用相同的图像对我拥有的图像进行反卷积?

这是我试图去卷积的图像示例:

我有一个程序可以自动选择珠子并裁剪图像的其余部分。我需要做的就是对此应用反卷积。

我的最终目标是通过对我从视频中获得的一堆 2D 切片进行反卷积并用 3D 软件表示它们来实现光学切片。

所以有人可以从理论上解释我需要做什么(或者在 MATLAB 方面,这将是首选)。


一种可能的解决方案

在与几个人交谈后,我注意到 EPFL 有一个可从 MATLAB 调用的Java 资源。它是一个 PSF 发生器,基于您的显微镜的规格。这个生成的 PSF 可以与 LUCY 和 Weiner 一起使用。


替代解决方案

我还找到了这个资源,这是一个 MATLAB 库,专门用于我现在正在做的事情。


(如果有人也试图回答这个问题,我会喜欢它)是我将如何衡量反卷积算法的性能。我相信我的反卷积的最终结果将取决于 PSF 估计(EPFL 资源或 Praveen 算法)和反卷积算法(Blind、LUCY、Weiner 等)。完成后,我将在此处发布所有结果的表格。

1个回答

我在互联网上的很多地方都读到了一个荧光珠,它代表一个亚分辨率对象,因此是一个脉冲函数。虽然我知道 OTF(光学传递函数)由我得到的图像表示,但我如何叠加以使用相同的图像对我拥有的图像进行反卷积?

这就是我们为双光子显微镜所做的。你的珠子比点扩散函数小得多吗?如果是这样,那么正如您所提到的,您可以将珠子近似为冲动。从这个角度来看,磁珠本身就是一个 delta 函数,它的记录图像就是你对 PSF 的估计。将珠子的图像与其自身进行反卷积将在珠子的位置给出一个 delta 函数,这正是该方法背后的假设。对几帧进行平均以减少噪声、减去背景、标准化和裁剪图像以去除不必要的背景非常重要。您还可以拟合 PSF 的参数模型(例如,用高斯来近似中央波瓣,或更复杂的模型)。在这里,您将再次将珠子视为 delta 函数,并且模型将适合珠子的图像。如果您的珠子较大并且您不想将其视为 delta 函数,我可以想象将其视为已知球体(如果您知道大小)。在这种情况下,您必须进行反卷积才能恢复 PSF。