Openslide/libtiff/GDAL ndarray-like interface and lazy parallel tile-based processing
Project description
BIPL is a Big Image Python Library
Library to read big pyramidal images like in formats like BigTiff, Aperio SVS, Leica MRXS.
bipl.Slide - ndarray-like reader for multiscale images (svs, tiff, etc...)
import numpy as np
from bipl import Slide
slide = Slide.open('test.svs')
shape: tuple[int, ...] = slide.shape # Native shape
downsamples: tuple[int, ...] = slide.downsamples # List of pre-existing sub-resolution levels
# Get native miniature
tmb: np.ndarray = slide.thumbnail()
mpp: float = slide.mpp # X um per pixel, native resolution
image: np.ndarray = slide[:2048, :2048] # Get numpy.ndarray of 2048x2048 from full resolution
MPP = 16. # Let's say we want slide at 16 um/px resolution
downsample = MPP / slide.mpp
mini = slide.pool(downsample) # Gives `downsample`-times smaller image
mini = slide.resample(MPP) # Gives the same result
# Those ones trigger ndarray conversion
image: np.ndarray
image = mini[:512, :512] # Take a part of
image = mini.numpy() # Take a whole resolution level
image = np.array(mini, copy=False) # Use __array__ API
bipl.Mosaic - apply function for each tile of big image on desired scale.
import numpy as np
from bipl import Mosaic, Slide
m = Mosaic(step=512, overlap=0) # Read at [0:512], [512:1024], ...
# Open slide at 1:1 scale
s = Slide.open('test.svs')
# Target at 4 um/px resolution
# If `test.svs` has some pyramid in it (i.e. 1:1, 1:4, 1:16), it will be used to speed up reads.
s4 = s.resample(mpp=4.0)
# Get iterator over tiles.
# Reads will be at [0:512], [512:1024] ... @ MPP
tiles = m.iterate(s4)
# Read only subset of tiles according to binary mask (1s are read, 0s are not).
# `s4.shape * scale = mask.shape`, `scale <= 1`
tiles = tiles.select(mask, scale)
# Read all data, trigger I/O. All the previous calls do not trigger any disk reads beyond metadata.
images: list[np.ndarray] = [*tiles]
Installation
pip install bipl
bipl is compatible with: Python 3.10+. Tested on ArchLinux, Ubuntu 20.04/22.04, Windows 10/11.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bipl-0.6.7.tar.gz.
File metadata
- Download URL: bipl-0.6.7.tar.gz
- Upload date:
- Size: 43.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89697ed34cc2848c39834abe1d50ecf09aea3472153ec76f2ae83e490a1993c9
|
|
| MD5 |
64ded3ecdfff4f48f84e60222129ed7c
|
|
| BLAKE2b-256 |
85947b49a50df11280a1cf617f54c9a47f6f632e721bdc0c9464551cd802bfa5
|
Provenance
The following attestation bundles were made for bipl-0.6.7.tar.gz:
Publisher:
publish.yaml on arquolo/bipl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bipl-0.6.7.tar.gz -
Subject digest:
89697ed34cc2848c39834abe1d50ecf09aea3472153ec76f2ae83e490a1993c9 - Sigstore transparency entry: 930103692
- Sigstore integration time:
-
Permalink:
arquolo/bipl@41271fdf7067dae5222b999c2cdbb5624a85353e -
Branch / Tag:
refs/tags/v0.6.7 - Owner: https://github.com/arquolo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@41271fdf7067dae5222b999c2cdbb5624a85353e -
Trigger Event:
push
-
Statement type:
File details
Details for the file bipl-0.6.7-py3-none-win_amd64.whl.
File metadata
- Download URL: bipl-0.6.7-py3-none-win_amd64.whl
- Upload date:
- Size: 51.6 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ca58264c508faf8b3dfb299f27d4e7f817fce83e1f08b33674eb2710d419317
|
|
| MD5 |
e3dbdcc928d2e020ddcadeded060fe61
|
|
| BLAKE2b-256 |
980f4c7f8960a257eb91ecd0724453a715e71751f0a7d2e4fa800ceec19a2581
|
Provenance
The following attestation bundles were made for bipl-0.6.7-py3-none-win_amd64.whl:
Publisher:
publish.yaml on arquolo/bipl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bipl-0.6.7-py3-none-win_amd64.whl -
Subject digest:
4ca58264c508faf8b3dfb299f27d4e7f817fce83e1f08b33674eb2710d419317 - Sigstore transparency entry: 930103696
- Sigstore integration time:
-
Permalink:
arquolo/bipl@41271fdf7067dae5222b999c2cdbb5624a85353e -
Branch / Tag:
refs/tags/v0.6.7 - Owner: https://github.com/arquolo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@41271fdf7067dae5222b999c2cdbb5624a85353e -
Trigger Event:
push
-
Statement type: