Releases: urlicht/TotalVariationImageFiltering.jl
Releases · urlicht/TotalVariationImageFiltering.jl
v0.1.0
First public release of TotalVariationImageFiltering.jl.
Added
- Core
N-D TV problem API viaTVProblemwith configurable:lambdaand physicalspacingL2FidelityandPoissonFidelityIsotropicTVandAnisotropicTVNeumannboundary handling- primal constraints (
NoConstraint,NonnegativeConstraint,BoxConstraint)
- ROF solver (
ROFConfig) forL2 + TVdenoising using a Chambolle-style dual projected-gradient method. - PDHG / Chambolle-Pock solver (
PDHGConfig) for:L2 + TV- Poisson
KL + TV - optional primal constraints (non-negative and box-constrained reconstruction)
- Single-item and in-place solve APIs:
solve,solve!- reusable solver workspaces via
ROFStateandPDHGState
- Batch APIs for arrays shaped
(spatial..., batch):solve_batch,solve_batch!- summary and optional per-item solver statistics
- Automatic regularization parameter selection for ROF:
- discrepancy principle (
select_lambda_discrepancy) - Monte Carlo SURE (
select_lambda_sure)
- discrepancy principle (
- Optional CUDA acceleration via extension (
TotalVariationImageFilteringCUDAExt) whenCUDA.jlis available.
Documentation
- Full docs site with guides for:
- installation and quick start
- problem/API usage
- ROF and PDHG solver details
- lambda selection
- batch and CUDA usage
- API reference and benchmarking
Validation
- Test suite covering:
- problem/types/operators
- ROF and PDHG solvers
- single and batch APIs
- lambda selection
- CUDA extension behavior (when CUDA is available)
- CI configured for Julia
1.11and1.12.
Compatibility
- Julia
1.11+. - CUDA support is optional and loaded through package extension when
CUDA.jland a functional CUDA runtime are present.
Notes
ROFConfigcurrently supportsL2Fidelity,Neumannboundary, andNoConstraint.PDHGConfigsupportsL2FidelityandPoissonFidelitywithNoConstraint,NonnegativeConstraint, orBoxConstraint.