跳转到主要内容

使用OpenCL在Python中实现GPU加速图像处理

项目描述

py-clesperanto

Conda Version PyPI License Development Status Build codecov Python Version Code style: black GitHub stars GitHub forks

pyclesperanto 是clEsperanto的Python包 - 一个用于GPU加速图像处理的跨语言框架。它依赖于来自CLIJ的OpenCL内核系列。此包使用PyBind11在Python和C++中开发,并使用C++的CLIc库作为处理后端。

参考和示例

详细的API参考和包文档可以在此处找到,有关如何使用库和主要功能的一些演示笔记本可在演示文件夹中找到。

安装

  • 获取conda/python环境,例如通过mamba-forge
    • 如果您之前从未使用过python/conda环境,请先按照这些说明进行操作。
  • 创建一个新的环境并激活它
mamba create --name cle
mamba activate cle
mamba install -c conda-forge pyclesperanto

MacOS用户可能需要安装以下包:mamba install -c conda-forge ocl_icd_wrapper_apple Linux用户可能需要安装以下包:mamba install -c conda-forge ocl-icd-system

注意:也可以使用pip安装pyclesperanto

故障排除:显卡驱动程序

如果您遇到以下错误消息之一

  • "ImportError: DLL加载失败,导入cl时:指定的程序未找到" 另请参阅
  • "clGetPlatformIDs失败:PLATFORM_NOT_FOUND_KHR"
  • "没有可用后端。请在本系统上安装OpenCL或CUDA。"
  • "没有可用设备。请在本系统上安装OpenCL或CUDA。"

请安装您显卡和/或OpenCL设备的最新驱动程序。根据您的硬件从以下列表中选择正确的驱动程序来源

Linux用户可能需要根据他们的GPU安装如intel-opencl-icdrocm-opencl-runtime之类的包。

代码示例

import pyclesperanto as cle
from skimage.io import imread, imsave

# initialize GPU
device = cle.select_device()
print("Used GPU: ", device)

image = imread("https://samples.fiji.sc/blobs.png")

# push image to device memory
input_image = cle.push(image)

# process the image
inverted = cle.subtract_image_from_scalar(input_image, scalar=255)
blurred = cle.gaussian_blur(inverted, sigma_x=1, sigma_y=1)
binary = cle.threshold_otsu(blurred)
labeled = cle.connected_components_labeling(binary)

# The maxmium intensity in a label image corresponds to the number of objects
num_labels = cle.maximum_of_all_pixels(labeled)

# print out result
print("Num objects in the image: " + str(num_labels))

# read image from device memory
output_image = cle.pull(labeled)
imsave("result.tif", output_image)

示例和演示画廊

分割+分析Blob

细胞分割+Voronoi标记

3D图像过滤

寻找局部极大值

3D Tribolium核分割

探索应用程序编程接口(API)

更多用法和示例可以在演示文件夹中的笔记本中找到

贡献和反馈

clEsperanto是在开源中开发的,因为我们相信[开源社区]。请随时通过GitHub问题或通过image.sc论坛提供反馈。我们也非常欢迎贡献。在开始之前,请阅读我们的社区指南,并与我们联系,以便我们帮助您开始。如果您喜欢我们的工作,请星标仓库,与您的朋友分享,并使用它来制作酷炫的东西!

致谢

我们感谢德国研究共同体的支持,这是德国卓越战略(EXC2068)德累斯顿工业大学生命物理集群的一部分。该项目部分由Chan Zuckerberg Initiative DAF(硅谷社区基金会的一个咨询基金)的2021-237734号拨款(使用分布式CLIJ,NEUBIAS风格加速Fiji及其朋友,EOSS4)资助。

项目详情


下载文件

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

源分布

pyclesperanto-0.13.3.tar.gz (4.7 MB 查看哈希值)

上传时间

构建分布

pylesperanto-0.13.3-cp312-cp312-win_amd64.whl (461.6 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

pylesperanto-0.13.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (872.6 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

pylesperanto-0.13.3-cp312-cp312-macosx_11_0_arm64.whl (500.1 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

pylesperanto-0.13.3-cp312-cp312-macosx_10_14_x86_64.whl (538.7 kB 查看哈希值)

上传时间 CPython 3.12 macOS 10.14+ x86-64

pylesperanto-0.13.3-cp311-cp311-win_amd64.whl (466.8 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

pylesperanto-0.13.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (880.5 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

pylesperanto-0.13.3-cp311-cp311-macosx_11_0_arm64.whl (497.7 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

pylesperanto-0.13.3-cp311-cp311-macosx_10_14_x86_64.whl (532.6 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.14+ x86-64

pylesperanto-0.13.3-cp310-cp310-win_amd64.whl (465.4 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

pylesperanto-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (875.1 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pylesperanto-0.13.3-cp310-cp310-macosx_11_0_arm64.whl (496.0 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

pylesperanto-0.13.3-cp310-cp310-macosx_10_14_x86_64.whl (531.0 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.14+ x86-64

pylesperanto-0.13.3-cp39-cp39-win_amd64.whl (445.1 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pylesperanto-0.13.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (875.9 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pylesperanto-0.13.3-cp39-cp39-macosx_11_0_arm64.whl (496.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

pylesperanto-0.13.3-cp39-cp39-macosx_10_14_x86_64.whl (530.9 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.14+ x86-64

pylesperanto-0.13.3-cp38-cp38-win_amd64.whl (465.1 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pylesperanto-0.13.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (873.6 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

pylesperanto-0.13.3-cp38-cp38-macosx_11_0_arm64.whl (495.7 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

pylesperanto-0.13.3-cp38-cp38-macosx_10_14_x86_64.whl (530.8 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.14+ x86-64

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面