imtile
Lightweight image tiling and reconstruction for computer vision & deep learning.
Split large images into fixed-size overlapping tiles for neural network inference, then reassemble them with weighted-average blending for seamless, lossless reconstruction.
Features
- ✅ Configurable overlap — eliminate boundary artifacts in segmentation / detection
- ✅ Lossless round-trip —
tile → predict → reconstructproduces the exact original dimensions - ✅ Boundary snapping — handles images whose dimensions aren't multiples of tile size
- ✅ GPU acceleration — auto-detects CuPy for transparent GPU processing
- ✅ Framework agnostic — works with plain NumPy arrays (no PyTorch/TF dependency)
- ✅ Grayscale & multi-channel — supports 2-D and 3-D arrays
Installation
pip install imtile
With GPU support (requires CUDA):
pip install imtile[gpu]
Quick Start
import numpy as np
from imtile import ImageTiler
# Load your large image (H, W, C)
image = np.random.randint(0, 256, (2048, 2048, 3), dtype=np.uint8)
# Create tiler with 256×256 tiles and 32px overlap
tiler = ImageTiler(tile_size=256, overlap=32)
# Split into tiles
tiles = tiler.tile(image)
print(f"Generated {len(tiles)} tiles")
# Process each tile (e.g., run through a neural network)
predictions = [my_model(tile) for tile in tiles]
# Reconstruct the full-size output
result = tiler.reconstruct(predictions, image.shape)
assert result.shape == image.shape
Convenience Functions
from imtile import tile_image, reconstruct_image
tiles = tile_image(image, tile_size=256, overlap=32)
result = reconstruct_image(tiles, image.shape, tile_size=256, overlap=32)
Algorithm
┌──────────────────────────────────────────┐
│ Original Image (H×W) │
│ │
│ ┌─────────┐ │
│ │ Tile 0 │ │
│ │ │─overlap─┐ │
│ └─────────┘ │ │
│ ┌─────────────┤ │
│ │ Tile 1 │ │
│ │ │ │
│ └──────────────┘ │
│ ... │
│ ┌────────────┐ │
│ Boundary tiles snap → │ Tile N │ │
│ to image edge │ (snapped) │ │
│ └────────────┘ │
└──────────────────────────────────────────┘
Reconstruction: canvas += tile; weights += 1
result = canvas / weights (weighted average)
Complexity: O(H × W) — linear in image area, optimal.
API Reference
ImageTiler(tile_size, overlap=0)
| Method | Description |
|---|---|
tile(image) |
Split image into tiles. Returns List[ndarray]. |
reconstruct(tiles, original_shape) |
Reassemble tiles with weighted averaging. |
Module Functions
| Function | Description |
|---|---|
tile_image(image, tile_size, overlap) |
Convenience wrapper for ImageTiler.tile. |
reconstruct_image(tiles, shape, tile_size, overlap) |
Convenience wrapper for ImageTiler.reconstruct. |
gpu_available() |
Returns True if CuPy/CUDA is detected. |
Use Cases
- Semantic segmentation of satellite / aerial / medical imagery
- Object detection on high-resolution images (complementary to SAHI)
- Super-resolution inference on large inputs
- Any pipeline that needs to process images larger than GPU memory
License
MIT — free for personal, academic, and commercial use.
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub. See CONTRIBUTING.md for guidelines.
Metadata
Release files for imtile 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| imtile-0.1.3.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| imtile-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / imtile-0.1.3.tar.gz
| Download URL | imtile-0.1.3.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04cfb46a56374f487117477246179a83f225c9c3ff7a95f05e9fe2b55e685a80
|
|
BLAKE2b-256 checksum How to use checksums |
ddb3728fea6cceef7c1ebb1a7486f805ce9dedfcfab07a91380e57102436d4ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency logRelease files / imtile-0.1.3-py3-none-any.whl
| Download URL | imtile-0.1.3-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef6c6936f94ff90b5d6951890dddaaf0b09e5081986467b3d44df1ce52f63c57
|
|
BLAKE2b-256 checksum How to use checksums |
a334fddbcb0f0328938d78a03655b3da6f1a0e5789eac4a1bfd37057c4c15ae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency log