Description:
This set of Python codes are the the ADMM-based Poisson denoisers with three different image priors (L1-norm, TV norm and LLT norm). 

Authors:
Xiang Wu (xiangwu@stanford.edu)

How to use:
The main code is "final_project.py", which can run with all images and other codes in the same folder. This main code uses three ADMM denoiser functions called "denoiser_admm_l1norm.py", "denoiser_admm_tv.py" and "denoiser_admm_llt.py" to denoise a diverse set of Poissonian synthetic and experimental images. The code then plots the the final denoised images and the PSNR values as a function of iteration numbers. The parameters rho and lambda have been optimized for each image and image prior. If the user wants to apply the denoisers on new images, it is strongly recommmended to optimize these parameters for optimal performance.

The three ADMM denoiser functions "denoiser_admm_l1norm.py", "denoiser_admm_tv.py" and "denoiser_admm_llt.py" takes the noisy image as the input, performs the denoising test according to the user-defined parameters (rho and lambda), and returns the denoised images. These three functions also take the ground-truth image to calculate the PSNR values at each iteration, which is also returned together with the denoised image as an array.

