This project explores how C++17 and OpenMP can be combined to write a surprisingly compact implementation of n-dimensional parallel affine transformations which are linked into Python via the affine_transform module.
While this project is still under development, the following features are supported:
Linear and cubic (without prefiltering) interpolation
Constant boundaries
Compiling code for arbitrarily dimensional data
Parallelism via OpenMP
Short example usage
import numpy as np
from affine_transform import transform
from mgen import rotation_from_angle
import matplotlib.pyplot as plt
# Create a simple white square in an image
original = np.zeros((601, 401))
original[100:300, 100:300] = 1
# Rotate by 22.5° (around the centre of the square (200,200))
# and shift +200 in x and +100 in y
transformed = transform(
original, rotation_from_angle(np.pi / 8), np.array([200, 100]), origin=(200, 200)
)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file affine_transform-0.2.0.tar.gz.
File metadata
- Download URL: affine_transform-0.2.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
424a2cdd43989948d677571ee19669a6bbcedcc52a8dc6ea7fe720f9a8ee96c6
|
|
| MD5 |
dcaa84cb56568431adfb4ab9be073639
|
|
| BLAKE2b-256 |
26e69f071482621b917a5a61053489629905ca08465d6f8b9c0fce7fed2af1f9
|