Total Variation Deconvolution using Split Bregman
|
u-subproblem DFT solver for TV-regularized deconvolution More...
Go to the source code of this file.
Functions | |
static void | SymmetricPadding (num *Dest, const num *Src, int Width, int Height, int NumChannels) |
Symmetrically pad an image to twice its size. More... | |
static void | AdjBlurFourier (numcomplex *ATrans, num *A, FFT(plan) TransformA, const numcomplex *KernelTrans, const num *ztilde, int Width, int Height, int NumChannels, num Alpha) |
Compute ATrans = Alpha . conj(KernelTrans) . DFT[ztilde]. | |
static int | InitDeconvFourier (tvregsolver *S) |
Intializations to prepare TvRestore for Fourier deconvolution. More... | |
static void | UTransSolveFourier (numcomplex *BTrans, num *B, FFT(plan) TransformB, numcomplex *ATrans, const numvec2 *dtilde, const num *DenomTrans, int Width, int Height, int NumChannels) |
Compute BTrans = ( ATrans - DFT[div(dtilde)] ) / DenomTrans. More... | |
static num | UDeconvFourier (tvregsolver *S) |
Solve the u-subproblem using DFT transforms (UseZ = 0) More... | |
static num | UDeconvFourierZ (tvregsolver *S) |
Solve the u-subproblem using DFT transforms (UseZ = 1) More... | |
u-subproblem DFT solver for TV-regularized deconvolution
Copyright (c) 2010-2012, Pascal Getreuer All rights reserved.
This program is free software: you can use, modify and/or redistribute it under the terms of the simplified BSD License. You should have received a copy of this license along this program. If not, see http://www.opensource.org/licenses/bsd-license.html.
Definition in file usolve_dft_inc.c.
|
static |
Intializations to prepare TvRestore for Fourier deconvolution.
S | tvreg solver state |
Definition at line 94 of file usolve_dft_inc.c.
|
static |
Symmetrically pad an image to twice its size.
Dest | the destination |
Src | the source image |
Width,Height,NumChannels | the dimensions of Src |
The Src image of size Width by Height is reflected over each axis to create an image that is 2*Width by 2*Height.
Definition at line 27 of file usolve_dft_inc.c.
|
static |
Solve the u-subproblem using DFT transforms (UseZ = 0)
This routine solves the u-subproblem
where K denotes the blur operator . The solution is obtained using the discrete Fourier transform (DFT) as
where E denotes symmetric extension and denotes the DFT.
Definition at line 227 of file usolve_dft_inc.c.
|
static |
Solve the u-subproblem using DFT transforms (UseZ = 1)
This extended version of UDeconvFourier is used when performing Fourier- based deconvolution with the three-auxiliary variable algorithm (UseZ = 1), that is, in a deconvolution problem with a non-symmetric kernel and non- Gaussian noise model.
Definition at line 249 of file usolve_dft_inc.c.
|
static |
Compute BTrans = ( ATrans - DFT[div(dtilde)] ) / DenomTrans.
This subroutine is a part of the DFT u-subproblem solution that is common to both the d,u splitting (UseZ=0) and d,u,z splitting (UseZ=1).
Definition at line 183 of file usolve_dft_inc.c.