TotalVariationImageFiltering.jl
TotalVariationImageFiltering.jl is a Julia package for total-variation (TV) denoising and reconstruction on N-dimensional arrays.
It currently provides:
- ROF denoising (
L2 + TV) via a Chambolle-style dual projected-gradient algorithm. - PDHG / Chambolle-Pock for
L2 + TVand PoissonKL + TV. - PDHG primal constraints: non-negativity and box constraints.
- Isotropic and anisotropic TV.
- Single-image and batched solves.
- Automatic lambda selection for ROF (discrepancy principle and MC-SURE).
- Optional CUDA acceleration via package extension.
Core models:
\[\min_u \frac{1}{2}\|u-f\|_2^2 + \lambda\,\mathrm{TV}(u)\]
\[\min_u \sum_i \left(u_i - f_i \log(u_i)\right) + \lambda\,\mathrm{TV}(u)\]
Documentation Guide
- Installation
- Quick Start
- Problem & API
- ROF Solver
- PDHG Solver
- Lambda Selection
- Batch & CUDA
- Benchmarking
- API Reference
- References
Notes
- This manual consolidates and expands content from the repository
README.md,benchmark/README.md, source code, and docstrings. - For the latest benchmark runs, see the benchmark scripts and generated CSVs in the repository.