Code covered by the BSD License

### Highlights fromBregman Cookbook

from Bregman Cookbook by Jerome Gilles
This toolbox provides signal/image/3D processing based on Bregman Iterations

u=Curvelet_NB_Deconvolution(f,A,mu,lambda,Niter,NLevel,typeKernel)
```function u=Curvelet_NB_Deconvolution(f,A,mu,lambda,Niter,NLevel,typeKernel)

%============================================================================
%
% function u=Curvelet_NB_Deconvolution(f,A,mu,lambda,Niter,NLevel,typeKernel)
%
% This function performs the Nonblind Curvelet deconvolution by the analysis
% approach.
% Version:
% -v1.2 - 07/18/2011
% -v1.0 - 05/04/2011
%
% Parameters:
% f: input blurred image
% A: input blur kernel
% mu,lambda: regularization parameters
% Niter: number of iterations
% NLevel: number of scale used in the Curvelet decomposition
% typeKernel: 0 <=> A is considered in the spatial domain
%             1 <=> A is considered in the Fourier domain and must be of
%             the same size of the image with frequency (0,0) at location
%             (1,1)
%
% Author: Jerome Gilles
% Institution: UCLA - Math Department
% email: jegilles@math.ucla.edu
%
%============================================================================

%structures initialization
[M,N]=size(f);
U=fdct_wrapping(zeros(M,N),1,1,NLevel);
d=U;
b=U;

%Fourier mask + initialization of Fourier constant quantities
if typeKernel==0
[H,L]=size(A);
else
end

K=0;
%Bregman iterations
while K<Niter,
K=K+1;
%update u
tx=ifdct_wrapping(SubCurveletArray(d,b),1,M,N);
u=real(ifft2(FW.*(FF+lambda*fft2(tx))));

%update d