Metadata-Version: 2.4
Name: rawpipe
Version: 0.19.2
Summary: A collection of camera raw processing algorithms.
Project-URL: Homepage, https://github.com/toaarnio/rawpipe
Project-URL: Repository, https://github.com/toaarnio/rawpipe
Project-URL: Issues, https://github.com/toaarnio/rawpipe/issues
Author-email: Tomi Aarnio <tomi.p.aarnio@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: camera,image-processing,isp,numpy,raw
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Requires-Dist: numpy>=1.21.0
Requires-Dist: opencv-python-headless>=4.5.0
Provides-Extra: dev
Requires-Dist: imgio; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Description-Content-Type: text/markdown

# rawpipe

[![CI](https://github.com/toaarnio/rawpipe/actions/workflows/ci.yml/badge.svg)](https://github.com/toaarnio/rawpipe/actions/workflows/ci.yml)

A collection of reference ISP algorithms, sufficient for producing a reasonably
good looking image from raw sensor data. Each algorithm takes in a frame in RGB
or raw format and returns a modified copy of the frame. The frame is expected to
be a NumPy float array with either 2 or 3 dimensions, depending on the function.
Some of the algorithms can be applied in different orders (demosaicing before or
after linearization, for example), but the reference ordering is as shown below.

**Example:**
```
import rawpipe
...
raw = rawpipe.linearize(raw, blacklevel=64, whitelevel=1023)
rgb = rawpipe.wb(rgb, [1.5, 2.0], "RGGB")
rgb = rawpipe.demosaic(raw, "RGGB", downsample=True)
rgb = rawpipe.downsample(rgb, iterations=1)
rgb = rawpipe.lsc(rgb, my_vignetting_map)
rgb = rawpipe.lsc(rgb, my_color_shading_map)
rgb = rawpipe.ccm(rgb, my_3x3_color_matrix)
rgb = rawpipe.resize(rgb, 400, 300)
rgb = rawpipe.gamut(rgb, "ACES")
rgb = rawpipe.tonemap(rgb, "Reinhard")
rgb = rawpipe.chroma_denoise(rgb)
rgb = rawpipe.saturate(rgb, lambda x: x ** 0.75)
rgb = rawpipe.gamma(rgb, "sRGB")
rgb = rawpipe.quantize8(rgb)
```

**Installing on Linux:**
```
pip install rawpipe
```

**Installing development dependencies:**
```
uv sync --extra dev
```

**Documentation:**
```
pydoc rawpipe
```

**Building & installing from source:**
```
make install
```

**Running tests locally:**
```
uv run pytest
```

**Building distributions locally:**
```
uv build
```

**Releasing to PyPI:**
```
Publishing is handled by GitHub Actions with PyPI Trusted Publishing.
```
