Happy to be sharing TotalImageVariationImageFiltering.jl
This provides a framework for performing and extending total variation denoising in n-dimensional arrays, with an option to use CUDA for acceleration. CUDA acceleration provides multiple orders of magnitude speedup, particularly for larger images or volumes, and batched solving further improves speed and throughput.
- ROF denoising (
L2 + TV) with a Chambolle-style dual projected-gradient method - 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
- Optional CUDA acceleration via package extension
I would greatly appreciate any feedback on the math, implementation, and anything else.