View on GitHub ↗2026-04-29
Summary
- Pixel functional layer: multichannel
cv2.LUTfor per-channel tone curves and histogram-derived LUTs on medium/largeuint8images, replacing Python per-channel loops. - Touches Equalize, AutoContrast, and RandomToneCurve via the shared
apply_multichannel_luthelper when preconditions match. - Dithering: ordered
uint8path can take a vectorized fast route when image size/channel count pass internal guards. - Dependency:
albucore0.1.5 → 0.1.6 (declared inpyproject.toml/uv.lock; conda recipe aligned). - New regression tests for histogram/LUT and dithering paths (
tests/functional/test_functional.py,tests/test_dithering.py).
Breaking changes
None.
New features
None.
Bug fixes
None.
Misc
conda.recipe/meta.yamlanduv.lockupdated alongside the version andalbucorepin.- Internal:
apply_multichannel_lutin_functional_shared.pycentralizes contiguous multichannel LUT application for(H,W,C), batch, and volume layouts.
Commits
| Commit | PR | Description |
|---|---|---|
a1e3acc | #252 | perf(pixel): optimize LUT-heavy transforms; albucore 0.1.6; tests for LUT and dithering paths |
d3ec440 | — | chore(release): bump version to 2.2.6 |