- published
- 2012-07-30
- reference
- Pascal Getreuer, Total Variation Deconvolution using Split Bregman, Image Processing On Line, 2 (2012), pp. 158–174. https://doi.org/10.5201/ipol.2012.g-tvdc
Communicated by Jean-Michel Morel
Demo edited by Pascal Getreuer
Abstract
Deblurring is the inverse problem of restoring an image that has been blurred and possibly corrupted with noise. Deconvolution refers to the case where the blur to be removed is linear and shift-invariant so it may be expressed as a convolution of the image with a point spread function. Convolution corresponds in the Fourier domain to multiplication, and deconvolution is essentially Fourier division. The challenge is that since the multipliers are often small for high frequencies, direct division is unstable and plagued by noise present in the input image. Effective deconvolution requires a balance between frequency recovery and noise suppression.
Total variation (TV) regularization is a successful technique for achieving this balance in deblurring problems. It was originally developed for image denoising by Rudin, Osher, and Fatemi and then applied to deconvolution by Rudin and Osher. In this article, we discuss TV-regularized deconvolution with Gaussian noise and its efficient solution using the split Bregman algorithm of Goldstein and Osher. We show a straightforward extension for Laplace or Poisson noise and develop empirical estimates for the optimal value of the regularization parameter λ.
Download
- full text manuscript: PDF (1.9M)
- source code: TAR/GZ
History
- Note from the editor: the manuscript of the article was modified on 2022-01-01 to include information about its editors. The original version of the manuscript is available here.
Erratum
- (Thanks Quentin Bammey and Pascal Getreuer). On line 1293 of the file imageio.c, the variable Z_BEST_COMPRESSION gets no value. This is because png.h no longer includes zlib.h, causing an undefined symbol error in imageio.c. Correction: add #include <zlib.h> immediately before #include <png.h> at the top of imageio.c.