Deconvolution: infrastructure and reference algorithms

Gaëtan Lehmann
Abstract

Abstract

The deconvolution, also called deblurring, tries to revert the optical distortion introduced during the aquisition of the image. It is a family of image processing which can be classed in the larger family of image restoration. Deconvolution is a very difficult problem, and many algorithms have been proposed to solve it, with different strenght and weakness which may depend on the context where they are used. As a consequence, it is desirable to have several algorithms available when trying to restore some images. The different algorithms are often built on a similar principle, making possible to share a large part of their API in their implementation. Also, the most generic operations related to deconvolution should be reusable in order to avoid code duplication and ease the implementation of new algorithms. In this contribution, the infrastructure for the implementation of several deconvolution algorithms is proposed. Based on this infrastructure, twelve simple deconvolution algorithms of reference are also provided.

Keywords

fftdeconvolution
Manuscript
Source Code and Data

Source Code and Data

deconvCMakeLists.txt3 KBIJMacros.txt3.1 KBWrappingCMakeLists.txt229 Baarl.cxx2.7 KBarticleArticle.tex18.6 KBInsightArticle.cls3.9 KBInsightJournal.bib155.8 KBInsightJournal.sty35.2 KBMakefile2.1 KBalgorithm.sty2.2 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBtimes.sty857 Bchange.cxx1.1 KBcheck.cxx1.1 KBconj.cxx1.9 KBcprl.cxx3 KBdrl.cxx2.9 KBfftconvCMakeLists.txt6.4 KBIJMacros.txt3.2 KBWrappingCMakeLists.txt513 Bwrap_itkClipImageFilter.cmake299 Bwrap_itkFFTConvolutionImageFilter.cmake100 Bwrap_itkFFTConvolutionImageFilterBase.cmake104 Bwrap_itkFFTPadImageFilter.cmake92 Bwrap_itkNormalizeToConstantImageFilter.cmake105 Bwrap_itkRegionFromReferenceImageFilter.cmake108 Bwrap_itkZeroFluxNeumannPadImageFilter.cmake107 BarticleArticle.tex24.7 KBInsightArticle.cls3.9 KBInsightJournal.bib155.8 KBInsightJournal.sty35.2 KBMakefile2 KBalgorithm.sty2.2 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBpseudocode.sty7.7 KBtimes.sty857 Bconv.cxx1.5 KBfftconv.cxx2.9 KBfftw3_test.cxx1.8 KBimagesconv.dot1.2 KBcthead1.tif68.1 KBdot.png172 Bfftconv.png18.8 KBfftw3-ops-gpf.pdf125.2 KBfftw3-time-dim.pdf121.7 KBimage-pad-convolved.png22.2 KBinheritance.dot1.1 KBkernel-pad-flip-shift.png449 Bkernel-pad-flip.png461 Bkernel.png157 Bnorm.png160 Bpad-image-0.png28.9 KBpad-image-13.png28.9 KBpad-image-2.png30.3 KBpad-image-mirror.png111.7 KBpad-image-wrap.png59.6 KBpad-image-zero-flux.png30.8 KBpad-kernel-0.png274 Bpad-kernel-13.png276 Bpad-kernel-2.png464 Bpad-kernel-no-padding.png266 Bperf2D-vnl.txt751 Bperf2D-wisdom.txt785 Bperf2D.gnuplot563 Bperf2D.txt821 Bperf_threads.gnuplot348 Bperf_threads.txt242 Bref.png24.2 KBitkClipImageFilter.h3.6 KBitkFFTComplexConjugateToRealImageFilter.h3.6 KBitkFFTComplexConjugateToRealImageFilter.txx5.4 KBitkFFTConvolutionImageFilter.h5 KBitkFFTConvolutionImageFilter.txx1.8 KBitkFFTConvolutionImageFilterBase.h8.6 KBitkFFTConvolutionImageFilterBase.txx17.7 KBitkFFTPadImageFilter.h7.2 KBitkFFTPadImageFilter.txx8.6 KBitkFFTRealToComplexConjugateImageFilter.h3.1 KBitkFFTRealToComplexConjugateImageFilter.txx5.3 KBitkFFTWCommon.h20.9 KBitkFFTWComplexConjugateToRealImageFilter.h3.2 KBitkFFTWComplexConjugateToRealImageFilter.txx6.3 KBitkFFTWLock.cxx5.7 KBitkFFTWLock.h2.1 KBitkFFTWRealToComplexConjugateImageFilter.h2.9 KBitkFFTWRealToComplexConjugateImageFilter.txx5.3 KBitkNormalizeToConstantImageFilter.h4.2 KBitkNormalizeToConstantImageFilter.txx3.1 KBitkRegionFromReferenceImageFilter.h4.5 KBitkRegionFromReferenceImageFilter.txx2.2 KBitkTestingMacros.h2 KBitkZeroFluxNeumannPadImageFilter.h5.7 KBitkZeroFluxNeumannPadImageFilter.txx8 KBnorm.cxx1.2 KBpad.cxx2.9 KBpad1.cxx2 KBperf2D.cxx2.6 KBperf3D.cxx3.2 KBperf_threads.cxx2.7 KBref.cxx1.9 KBgauss.cxx1.4 KBidiv.cxx1.1 KBimagesconj.png29 KBcthead1.tif68.1 KBkernel2.png393 Bisnr.cxx1.2 KBitkAdaptivelyAcceleratedRichardsonLucyDeconvolutionImageFilter.h6.3 KBitkAdaptivelyAcceleratedRichardsonLucyDeconvolutionImageFilter.txx5.6 KBitkBinaryFunctorWithIndexImageFilter.h6.1 KBitkBinaryFunctorWithIndexImageFilter.txx3.6 KBitkComplexConjugateImageFilter.h2.9 KBitkConchelloIntensityPenalizationImageFilter.h4.2 KBitkConchelloIntensityPenalizationImageFilter.txx1.8 KBitkDampedRichardsonLucyDeconvolutionImageFilter.h6.2 KBitkDampedRichardsonLucyDeconvolutionImageFilter.txx2.9 KBitkDivideOrZeroOutImageFilter.h3.7 KBitkFFTConvolveByOpticalTransferFunctionImageFilter.h5.5 KBitkFFTConvolveByOpticalTransferFunctionImageFilter.txx4.1 KBitkIDivergenceCalculator.h3 KBitkIDivergenceCalculator.txx2.7 KBitkImprovementInSignalToNoiseRatioCalculator.h3.6 KBitkImprovementInSignalToNoiseRatioCalculator.txx3.2 KBitkIterativeDeconvolutionImageFilter.h8.5 KBitkIterativeDeconvolutionImageFilter.txx6.4 KBitkJanssonVanCittertDeconvolutionImageFilter.h5 KBitkJanssonVanCittertDeconvolutionImageFilter.txx2.2 KBitkLandweberDeconvolutionImageFilter.h4.4 KBitkLandweberDeconvolutionImageFilter.txx2.1 KBitkLaplacianImageFilter.h5.9 KBitkLaplacianImageFilter.txx5.5 KBitkMaximumAPosterioriLeastSquaresDeconvolutionImageFilter.h6.5 KBitkMaximumAPosterioriLeastSquaresDeconvolutionImageFilter.txx2.9 KBitkMaximumEntropyRichardsonLucyDeconvolutionImageFilter.h5.8 KBitkMaximumEntropyRichardsonLucyDeconvolutionImageFilter.txx2.8 KBitkMultiplyByComplexConjugateImageFilter.h2.8 KBitkPoissonMaximumAPosterioriDeconvolutionImageFilter.h7 KBitkPoissonMaximumAPosterioriDeconvolutionImageFilter.txx4.7 KBitkRegularizedLeastSquaresDeconvolutionImageFilter.h5.7 KBitkRegularizedLeastSquaresDeconvolutionImageFilter.txx2.6 KBitkRelativeChangeCalculator.h3.1 KBitkRelativeChangeCalculator.txx2.6 KBitkRichardsonLucyDeconvolutionImageFilter.h5.1 KBitkRichardsonLucyDeconvolutionImageFilter.txx4.3 KBitkTikhonovMillerDeconvolutionImageFilter.h6.2 KBitkTikhonovMillerDeconvolutionImageFilter.txx4.4 KBitkTikhonovMillerRichardsonLucyDeconvolutionImageFilter.h5.8 KBitkTikhonovMillerRichardsonLucyDeconvolutionImageFilter.txx4.5 KBitkTotalIntensityRatioCalculator.h3.1 KBitkTotalIntensityRatioCalculator.txx2.6 KBitkVanCittertDeconvolutionImageFilter.h6 KBitkVanCittertDeconvolutionImageFilter.txx4.8 KBitkWienerDeconvolutionImageFilter.h5.3 KBitkWienerDeconvolutionImageFilter.txx2.5 KBjvc.cxx2.7 KBl.cxx2.7 KBmap.cxx2.7 KBmaplls.cxx2.5 KBmerl.cxx2.9 KBmrl.cxx4.7 KBrl.cxx2.9 KBrlls.cxx2.5 KBtir.cxx1.1 KBtm.cxx2.3 KBtmrl.cxx2.9 KBvc.cxx2.7 KBwiener.cxx2.3 KB

Select a file to preview