Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Readme
Github repository | Github issues | Documentation
⚠️ Please note: work in progress, things will change and/or break! ⚠️
This python package provides consistent and user-friendly functions for tiling/patching and subsequent merging of NumPy arrays.
Such tiling is often required for various heavy image-processing tasks such as semantic segmentation in deep learning, especially in domains where images do not fit into GPU memory (e.g., hyperspectral satellite images, whole slide images, videos, tomography data).
Please see Quick start section.
If you want to use tiler interactively, I highly recommend napari and napari-tiler plugin.
You can find more examples in examples.
For more Tiler and Merger functionality, please check documentation.
import numpy as np
from tiler import Tiler, Merger
image = np.random.random((3, 1920, 1080))
# Setup tiling parameters
tiler = Tiler(data_shape=image.shape,
tile_shape=(3, 250, 250),
channel_dimension=0)
## Access tiles:
# 1. with an iterator
for tile_id, tile in tiler.iterate(image):
print(f'Tile {tile_id} out of {len(tiler)} tiles.')
# 1b. the iterator can also be accessed through __call__
for tile_id, tile in tiler(image):
print(f'Tile {tile_id} out of {len(tiler)} tiles.')
# 2. individually
tile_3 = tiler.get_tile(image, 3)
# 3. in batches
tiles_in_batches = [batch for _, batch in tiler(image, batch_size=10)]
# Setup merging parameters
merger = Merger(tiler)
## Merge tiles:
# 1. one by one
for tile_id, tile in tiler(image):
merger.add(tile_id, some_processing_fn(tile))
# 2. in batches
merger.reset()
for batch_id, batch in tiler(image, batch_size=10):
merger.add_batch(batch_id, 10, batch)
# Final merging: applies tapering and optional unpadding
final_image = merger.merge(unpad=True) # (3, 1920, 1080)
The latest release is available through pip:
pip install tiler
Alternatively, you can clone the repository and install it manually:
git clone git@github.com:the-lay/tiler.git
cd tiler
pip install
If you are planning to contribute, please take a look at the contribution instructions.
I work on semantic segmentation of patched 3D data and I often found myself reusing tiling functions that I wrote for the previous projects. No existing libraries listed below fit my use case, so that's why I wrote this library.
However, other libraries/examples might fit you better:
Vooban/Smoothly-Blend-Image-Patches
Do you know any other similar packages?
Moreover, some related approaches have been described in the literature:
This section is a work in progress.
How do I create tiles with less dimensions than the data array?
Tiler expects tile_shape
to have less than or the same number of elements as data_shape
.
If tile_shape
has less elements than data_shape
, tile_shape
will be prepended with
ones to match the size of data_shape
.
For example, if you want to get 2d tiles out from 3d array you can initialize Tiler like this: Tiler(data_shape=(128,128,128), tile_shape=(128, 128))
and it will be equivalent to
Tiler(data_shape=(128,128,128), tile_shape=(1, 128, 128))
.
FAQs
N-dimensional NumPy array tiling and merging with overlapping, padding and tapering
We found that tiler demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.