Skip to content

urlicht/TotalVariationImageFiltering.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TotalVariationImageFiltering.jl

CI Docs

TotalVariationImageFiltering.jl is a Julia package for total-variation (TV) denoising and reconstruction on N-dimensional arrays.

Original implementation: GPUFilter.jl

comparison: original, noisy, denoised x slice showing a comparison: original, noisy, denoised

Documentation

Full manual: https://urlicht.github.io/TotalVariationImageFiltering.jl/

Recommended entry points:

Features

  • ROF denoising (L2 + TV) with a Chambolle-style dual projected-gradient method
  • 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

Installation

From the registry:

] add TotalVariationImageFiltering

From this repository:

julia --project=.

From another Julia environment (local path):

import Pkg
Pkg.develop(path="/absolute/path/to/TotalVariationImageFiltering.jl")

From a hosted repository:

import Pkg
Pkg.add(url="https://github.com/urlicht/TotalVariationImageFiltering.jl")

Minimal Example

using TotalVariationImageFiltering

f = rand(Float32, 128, 128)
problem = TotalVariationImageFiltering.TVProblem(
    f;
    lambda = 0.1f0,
    data_fidelity = TotalVariationImageFiltering.L2Fidelity(),
    tv_mode = TotalVariationImageFiltering.IsotropicTV(),
)

u, stats = TotalVariationImageFiltering.solve(problem, TotalVariationImageFiltering.ROFConfig())

Benchmarking

Benchmark instructions and scripts are documented in benchmark/README.md.

Testing

import Pkg
Pkg.test()

CUDA tests run only when CUDA is installed and functional.

License

MIT. See LICENSE.

About

Julia package for total-variation (TV) denoising and reconstruction on N-dimensional arrays.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages