用于模拟和分析显微镜点扩展函数(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 401在API URL上带有声明性Http客户端,并带有@Secured(SecurityRule.IS_ANONYMOUS)注释   java如何在Android中创建计时器?   Java8WebStart安全弹出窗口   java会通过以下两种方式导致堆空间耗尽吗?   java项目调度GA:染色体的高效数据结构   java Apache POI:如何在Excel文件中插入列   java在JRE系统库中每个jar扮演什么角色   java如何在抽象类中执行@mock(不是注入mock)   java如何使用opensearch和Lucene发送搜索查询?   java在ApachePOI中处理空列   java广播接收器未接收到目标   java错误ELF类:ELF类64(可能原因:体系结构字宽不匹配)   java调用Web服务(SSL)时出错   用于iot集线器设备固件更新的java Rest API   通过xslt将xml转换为文本文件时引发java异常   Java linux打印问题   Java XML转换器重复行   java从另一个类的方法将数组导入mainActivity类   多线程选择与Java交互的线程   我想在java程序中打印以下格式的文件: