Minimalistic set of image reader agnostic tools to easily iterate over large images
Project description
Image Tiling Utils
Minimalistic set of image reader agnostic tools to easily iterate over large images
Example 1
Let's iterate over a large image with overlapping tiles of the same size tiles in pixels. At boundaries we add "no-data" pixels. Let's assume the data access is provided with an example function
def read_data(x, y, width, height, out_width=None, out_height=None):
out_width = width if out_width is None else out_width
out_height = height if out_height is None else out_height
img.read(x, y, width, height, out_width, out_height)
Thus, overlapping tiles can be extracted as
from tiling import ConstStrideTiles
tiles = ConstStrideTiles(image_size=(500, 500), tile_size=(256, 256), stride=(100, 100),
origin=(-100, -100),
scale=1.0,
include_nodata=True)
print("Number of tiles: %i" % len(tiles))
for extent, out_size in tiles:
x, y, width, height = extent
data = read_data(x, y, width, height,
out_width=out_size[0],
out_height=out_size[1])
print("data.shape: {}".format(data.shape))
# Access a tile:
i = len(tiles) // 2
extent, out_size = tiles[i]
Example 2
Let's iterate over a large image with overlapping tiles of the same size in pixels.
In this case we prefer to not going outside the input image and fill tiles with nodata
.
In this situation, overlapping is not constant.
Let's assume the data access is provided with an example function
def read_data(x, y, width, height, out_width=None, out_height=None):
out_width = width if out_width is None else out_width
out_height = height if out_height is None else out_height
img.read(x, y, width, height, out_width, out_height)
Thus, overlapping tiles can be extracted as
from tiling import ConstSizeTiles
tiles = ConstSizeTiles(image_size=(500, 500), tile_size=(256, 256), min_overlapping=15, scale=1.0)
print("Number of tiles: %i" % len(tiles))
for extent, out_size in tiles:
assert out_size[0] == tiles.tile_size[0]
assert out_size[1] == tiles.tile_size[1]
x, y, width, height = extent
data = read_data(x, y, width, height,
out_width=out_size[0],
out_height=out_size[1])
print("data.shape: {}".format(data.shape))
# Access a tile:
i = len(tiles) // 2
extent = tiles[i]
Installation:
from pip
pip install tiling
from sources
pip install git+https://github.com/vfdev-5/ImageTilingUtils.git
Examples
For more practical examples, see notebooks
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 Distributions
File details
Details for the file tiling-0.3.0.tar.gz
.
File metadata
- Download URL: tiling-0.3.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 888bf09385f5e200916e3308a2a2b1534c6837d52be552e5d077687f5be9799a |
|
MD5 | af135e94c2febd13838ae9aecb4fe6a4 |
|
BLAKE2b-256 | 8b5cf877513ee613894203d8e78f7a926b45b51e6408699f4e189d8e9d8331f7 |
File details
Details for the file tiling-0.3.0-py3.6.egg
.
File metadata
- Download URL: tiling-0.3.0-py3.6.egg
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd9623d9c9bb3b7ec410b5a4bd87a16930e9559695ba6ef4a287bbd1993986ee |
|
MD5 | e0f5ee6e1e2cf3df92634ab23e5435d7 |
|
BLAKE2b-256 | 0d7d69478f6027f0e3a59ff91e7be219204fa858a236724620872268e3f38825 |
File details
Details for the file tiling-0.3.0-py2.py3-none-any.whl
.
File metadata
- Download URL: tiling-0.3.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92d606be0a49746ef6de758c23e09ee232454252d5170fdb8ac01ba7863b5b07 |
|
MD5 | 1d5d09bc007eb0c6bd0b544c523307c5 |
|
BLAKE2b-256 | 8b7c741c08e17e66983c3423c1f2a3ec729e538b62bfa67e4fafd1b442745ee4 |