用于模拟和分析显微镜点扩展函数(PSFs)的python库

pyotf的Python项目详细描述


Conda Badge

皮托夫

用python语言编写的光学显微镜光学传递函数(OTF)/点扩散函数(PSF)建模的仿真软件包。在

简介

这个包的大部分文档都包含在源代码中,应该可以在任何交互式会话中使用。本文档的目的是快速概述包的功能和潜在用途。大部分代码在设计时都考虑到了交互式会话,但它仍然可以用于更大的脚本和程序中。在

安装

使用conda安装最简单:

conda install -c david-hoffman pyotf

组件

该软件包由四个组件模块组成:

  • otf.py其中包含用于生成不同类型的otf和psf的类
  • phase_retrieval.py它包含执行光学系统后孔径迭代{a1}的函数和类
  • zernike.py,其中包含计算Zernike Polynomials的函数
  • utils.py,其中包含在整个包中使用的各种实用程序函数。在

你知道吗otf.py公司

Comparison of HanserPSF and SheppardPSF Outputs

本模块提供两种光学成像系统模型,一种由Hanser et al描述,另一种由Arnison and Sheppard描述。事实上,它们在数学上是等价的,但在实践中它们各有优缺点。HanserPSF的一大好处是它允许计算PSF的选定z平面。然而,如果选择的z平面不是等间距的,那么由模型计算的场OTF(OTFa)和强度OTF(OTFi)将没有物理意义。在

SheppardPSF和{}都有非常相同的接口。当实例化它们时,用户必须提供一组模型参数。为了完整地描述物镜的PSF或OTF,假设没有变近,我们通常需要几个参数:

  • 工作波长(假设为单色光)
  • 物镜的数值孔径
  • 介质的折射率

对于数值计算,我们还需要知道x/y分辨率和点数。注意,假设z是物镜的光轴。在

相位_检索.py

本模块中实现的相位恢复算法由Hanser et. al描述。在

你知道吗泽尼克.py

First 15 zernike Polynomials plotted on the unit disk

Zernike Polynomials是在单位圆盘上定义的正交函数。作为正交函数,定义在单位圆盘上的任何函数都有一个独特的分解成Zernike多项式。在这个软件包中,Zernike多项式被用来量化光学系统的回瞳的相位和幅度的变化。为此,可以调用一个PhaseRetrievalResult对象的fit_to_zernikes方法,该方法将为后瞳孔检索到的相位和幅度调整指定数量的Zernike模式,并返回一个ZernikeDecomposition对象。为了方便起见,返回的ZernikeDecomposition还保存为PhaseRetreivalResult对象的属性,该对象调用了fit_to_zernikes方法。ZernikeDecomposition对象具有绘图方法,以便用户可以检查分解。ZernikeDecomposition物体也有重建相位、幅度或完全复瞳孔的方法,这些方法可以反馈到{}中,以产生一个经过缩小但无噪声的PSF。执行此操作的方法当前只是PhaseRetreivalResult类的成员,但稍后可能会移动到ZernikeDecomposition类。在

你知道吗实用工具.py

utils的大部分内容对于普通用户save-one函数是没有用的:prep_data_for_PR(data, xysize=None, multiplier=1.5)prep_data_for_PR顾名思义,可以使用phase_retrieval模块的retrieve_phase函数快速准备PSF图像数据以进行相位检索。在

LabVIEW应用程序接口

\labview\Test Phase Retrieval.vi中给出了从LabVIEW(>;2018)输入3D堆栈并运行此python函数的示例

用例

参考文献

  1. Hanser, B. M.; Gustafsson, M. G. L.; Agard, D. A.; Sedat, J. W. Phase Retrieval for High-Numerical-Aperture Optical Systems.Optics Letters 2003, 28 (10), 801.

  2. Arnison, M. R.; Sheppard, C. J. R. A 3D Vectorial Optical Transfer Function Suitable for Arbitrary Pupil Functions. Optics Communications 2002, 211 (1–6), 53–63.

  3. Hanser, B. M.; Gustafsson, M. G. L.; Agard, D. A.; Sedat, J. W. Phase Retrieval for High-Numerical-Aperture Optical Systems. Optics Letters 2003, 28 (10), 801.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java获取JEditorPane中字符的绝对位置   java Datetime:将时间段拆分为天、小时和分钟   java是使此HashMap更高效的一种方法   java项目reactor:collectList()之后的block()对Flux不起作用。创建()   java在Mac OSX上安装OpenCV   java递归地确定一组数字是否包含两个总和相等的子集   Quad2D曲线上的几何图形Java绘图箭头   java将SSL证书导入Glassfish 4。十、   java Android未找到处理Intent MediaScanner的活动   EclipseJava。安全cert.CertificateParsingException:java。木卫一。IOException:主题密钥,无法创建EC公钥   java我能在O(M log N)时间内完成吗?   java跟踪eclipse中的资源更改也在中。元数据和。项目   java如何完全禁用Android键盘   java返回到上一个活动