TotalVariationImageFiltering.jl

CI Docs

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 + TV and Poisson KL + 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

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.