跳转到主要内容

一个将NumPy(Python)和ImgLib2(Java)世界结合在一起的Python模块。

项目描述

build status

imglyb

imglyb旨在连接两个长期分离的世界

imglyb使用jpype访问numpy数组,并通过imglib2-imglyb将它们暴露给ImgLib2。这意味着numpyImgLib2之间的共享内存,即任何ImgLib2算法都可以在numpy数组上运行,而无需创建数据的副本!例如,Python用户现在可以利用BigDataViewer 扩展来可视化密集体积数据。

如果您对使用imglyb感兴趣,请查看examples文件夹并根据需要扩展示例!

注意NEP 18有可能改进numpy - imglib互操作性,尤其是在将imglib2数据结构转换为numpy时。

安装

先决条件

imglyb已在Linux、macOS和Windows上进行了测试。

以下工具是必需的

  • Python 3
  • Java 8或11 JDK(JRE不足以使用)
  • Apache Maven

如果您使用conda,这些工具将为您安装。

使用conda安装

conda install -c conda-forge imglyb

使用pip安装

首先,安装上述先决条件。然后运行

pip install imglyb

建议在虚拟环境或conda环境中运行此操作,而不是全局范围内。

从源码安装

首先,安装上述先决条件。然后运行

git clone https://github.com/imglib/imglyb
cd imglyb
pip install -e .

建议在虚拟环境或conda环境中运行此操作,而不是全局范围内。

使用方法

建议根据您的需求遵循并扩展examples文件夹中的示例。

或者,为了更高级地使用imglyb,请查看pyimagej

已知问题

macOS上的AWT

AWT和Cocoa并不完美地兼容。一般来说,需要在JVM加载之前启动Cocoa事件循环。(感谢@tpietzsch找出这个!)这需要一些macOS特定的代码,使用PyObjC编写,以正确启动和关闭Cocoa应用程序,并在其中启动Java/Python代码。

imglyb库中包含的OSXAWTwrapper.py脚本提供了Cocoa代码的示例,并可用于运行imglyb示例。此包装器需要两个来自PyObjC的包(pyobjc-corepyobjc-framework-cocoa),并且它们应与macOS上的imglyb一起安装。

运行包装器时,可以提供目标模块的名称(类似于使用python -m),或者提供目标脚本的完整路径。因此,使用模块名称,运行位于imglyb-examples中的“butterfly”脚本的命令如下所示

python imglyb/OSXAWTwrapper.py imglyb-examples.butterfly

目前通过python -m运行OSXAWTwrapper.py不起作用。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码分发

imglyb-2.1.0.tar.gz (18.0 kB 查看哈希值)

上传时间: 源代码

构建分发

imglyb-2.1.0-py3-none-any.whl (16.8 kB 查看哈希值)

上传时间: Python 3

由以下组织支持