Added Total Variation (TV) denoising by Basis Pursuit DeQuantization.
Added a test for TV denoising.
Added a filter that computes the TV of an image (mainly for the test).
Corrected a bug in rtkBackwardDifferenceDivergenceImageFilter.txx
that caused the rtkdivergencetest to have undertermined output
in some cases.
Created application rtktotalvariationdenoising
Modified rtkTotalVariationDenoisingBPDQImageFilter. The computation
of m_beta is currently wrong. It will be corrected in future commits
Added a conjugate gradient optimizer and its unit test
Optimized the conjugate gradient subfilters: they now run in multithread,
and some calculations that were performed twice are now performed only
once and the results passed from one subfilter to the other.
Added a composite filter ADMMTotalVariationConeBeamReconstructionFilter
that performs reconstruction using the Alternating Direction
Method of Multipliers combined with the Augmented Lagrangian method,
and total variation regularization, to obtain a TV-regularized
cone beam reconstruction
Corrected bugs in the rtkADMMTotalVariationConeBeamReconstructionFilter
Corrected the rtkTotalVariationDenoisingBPDQImageFilter, by
reorganizing the pipeline. It works, now.
Added diagram in the documentation of rtkTotalVariationDenoisingBPDQ
Corrected a mistake in the applications/CMakeLists.txt file
Code cleanup: removed ForwardDifferenceOperator, which already
existed in ITK. Removed BackwardDifference, which was not used.
Improved rtktotalvariationtest.
Corrected an issue with thread synchronization in the conjugate
gradient filter. Implemented SIRT using conjugate gradient.
Implemented a test for SIRT. As SIRT requires more iterations
than SART to converge, the tolerance on ErrorPerPixel and PSNR in
the test is higher than in rtksarttest, to keep the test reasonably fast
Added pipeline diagrams for ADMMTotalVariationConeBeamReconstruction
and SIRTConeBeamReconstruction filter. Added a test for
ADMMTotalVariation.
Created the rtsirt application
Added the RTK copyright header in many files.
Created the rtkIterativeConeBeamReconstructionFilter class, which
handles the creation of the forward and back projection filters
at runtime. ADMMTotalVariation now inherits from this class.
Corrected a bug in ADMMTotalVariation (an Add filter was replaced with
a Subtract filter).
Added variable RTK_USE_CUDA to the CMake configuration.
Replaced most of the if CUDA_FOUND with if RTK_USE_CUDA
throughout the code
SIRT was a slightly improper name, as it is commonly used to refer to a
reconstruction method minimizing || Rf - p ||_2^2 by steepest descent,
not by conjugate gradient. It has been renamed.
Continued renaming of SIRT into ConjugateGradient
Corrected many CUDA problems
Made it possible to use CUDA forward and backprojection filters in
rtkadmmtotalvariation and rtkconjugategradient.
Corrected a bug in the rtkCudaForwardProjectionImageFilter caused by
incorrect handling of non-zero requested region indices.
Modified the command line options in rtkconjugategradient to match those
of rtkadmmtotalvariation.
Cosmetic modifications after code review