Skip to main content

pyrtools: tools for multi-scale image processing

PyPI Version Anaconda-Server Badge License: MIT Python version Build Status Documentation Status DOI Binder codecov

Briefly, the tools include:

  • Recursive multi-scale image decompositions (pyramids), including Laplacian pyramids, QMFs, Wavelets, and steerable pyramids. These operate on 1D or 2D signals of arbitrary dimension.
  • Fast 2D convolution routines, with subsampling and boundary-handling.
  • Fast point-operations, histograms, histogram-matching.
  • Fast synthetic image generation: sine gratings, zone plates, fractals, etc.
  • Display routines for images and pyramids. These include several auto-scaling options, rounding to integer zoom factors to avoid resampling artifacts, and useful labeling (dimensions and gray-range).

This is a python 3 port of Eero Simoncelli's matlabPyrTools, but it does not attempt to recreate all of the matlab code from matlabPyrTools. The goal is to create a Python interface for the C code at the heart of matlabPyrTools.

NOTE: If you are only interested in the complex steerable pyramid, we have a pytorch implementation in the plenoptic package; the implementation in plenoptic is differentiable.

Citing us

If you use pyrtools in a published academic article or presentation, please cite us! You can find the link to the most recent release on Zenodo here (though please specify the version you used not the most recent one!). You can also get a formatted citation at the top right of our GitHub repo

Installation

You can install pyrtools using either pip:

pip install pyrtools

or conda:

conda install pyrtools -c conda-forge

You may also install from source, directly from the git repository. This is largely useful if you are seeking to modify the code or make contributions. To do so, clone the repository and run pip install. On Mac or Linux, that looks like:

git clone https://github.com/LabForComputationalVision/pyrtools.git
cd pyrtools/
pip install .

You may also want an editable install, pip install -e ., in which case changes you make in the source code will be reflected in your install.

Pyramid resources

If you would like to learn more about pyramids and why they're helpful for image processing, here are some resources to get you started:

Usage:

  • load modules:
import pyrtools as pt
  • create pyramid:
pyr = pt.pyramids.LaplacianPyramid(img)
  • reconstruct image from pyramid:
recon_img = pyr.recon_pyr()

Please see TUTORIALS/02_pyramids.ipynb for more examples.

For developres

Testing

You can find unit tests in TESTS/unitTests.py and run them with python TESTS/unitTests.py.

Build the documentation

NOTE: If you just want to read the documentation, you do not need to do this; documentation is built automatically on readthedocs.

However, it can be built locally as well. You would do this if you've made changes locally to the documentation (or the docstrings) that you would like to examine before pushing.

# create a new virtual environment and then...
# install pyrtools with sphinx and documentation-related dependencies
pip install -e .[docs]
# build documentation
cd docs/
make html

The index page of the documentation will then be located at docs/_build/html/index.html, open it in your browser to navigate around.

Release files for pyrtools 1.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrtools 1.0.11
File Size Uploaded
pyrtools-1.0.11.tar.gz 7.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyrtools 1.0.11
File
pyrtools-1.0.11-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pyrtools-1.0.11-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl Python 3 none Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrtools-1.0.11-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
pyrtools-1.0.11-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 7.9 MB

Release files / pyrtools-1.0.11.tar.gz

Download URL pyrtools-1.0.11.tar.gz
Size 7.5 MB
Tags Source
SHA-256 checksum
How to use checksums
2659a9603ca0ac2a6b25787fda5a2bfad8a063bb4927182b5e06dcba02c7c5c2
BLAKE2b-256 checksum
How to use checksums
8f0478d79012d456653a005010413b37f638b1b0b911482b3ee8332fc371d674
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 Sep 2, 2026.

Transparency log

Release files / pyrtools-1.0.11-py3-none-win_amd64.whl

Download URL pyrtools-1.0.11-py3-none-win_amd64.whl
Size 159.6 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
c8fd3dbec6f28244bc3e921febd1c7390149e8d01db69d03ab326d3f56d59d9d
BLAKE2b-256 checksum
How to use checksums
87fe0c31d51dfbb20b0b486360f9e877e6a6cfaeb7d432c3ab300bfce11a9e94
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 Sep 2, 2026.

Transparency log

Release files / pyrtools-1.0.11-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL pyrtools-1.0.11-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 121.4 kB
Tags Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3310d1e63a083728cb528abcc817cae53b1dd230ac4dadf60544e1d311412983
BLAKE2b-256 checksum
How to use checksums
86a2ec97a47280df8d2c340d9f73acef0055d338bb800d4a2de2919b92d93573
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 Sep 2, 2026.

Transparency log

Release files / pyrtools-1.0.11-py3-none-macosx_11_0_arm64.whl

Download URL pyrtools-1.0.11-py3-none-macosx_11_0_arm64.whl
Size 93.7 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1018be70dcbbe558192c155257fe4a66ae2b00223a307355407165c454844442
BLAKE2b-256 checksum
How to use checksums
dcc8a7cf3caff95870303e200a6cd43d6108e8d710e4d2b44277d077d6b1e27f
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 Sep 2, 2026.

Transparency log

Release files / pyrtools-1.0.11-py3-none-macosx_10_9_x86_64.whl

Download URL pyrtools-1.0.11-py3-none-macosx_10_9_x86_64.whl
Size 96.2 kB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4887639b492c95193c653cc747840a818c5bd361383b3d6cb62ca9fc28eba0d2
BLAKE2b-256 checksum
How to use checksums
3cbcbf9dea941bd9377296d2a6d3b43c27e0e78f2e2d13f9a5f9ad9da9367b32
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 Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.11 This release

5 release files

1.0.10

5 release files

1.0.9

5 release files

1.0.8

5 release files

1.0.7

5 release files

1.0.6

5 release files

1.0.5

5 release files

1.0.4

5 release files

1.0.3

5 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page