Following up on a previous question, I wanted to understand how to solve an image deblurring problem using Variational methods in matlab or julia.
Given some original blurry image $f$, I would like to find the deblurred version $u$. $K$ is a function that essentially softens the edges of the image and takes $K: u \rightarrow f$. The statement of the problem involves minimizing the energy of the squared loss with an additional
$$ E(u)=\int_{\Omega}|D u|^{2} d x+\lambda \int_{\Omega}(K u-f)^{2} d x $$
I am taking the statement of the problem from the Vese and Guyader 2016 book.
Using the ADMM optimizer, the method can take a blurry image such as:
and recover a sharper image as below.
UPDATE:
The ADMM optimizer is often used to minimize these function, as are other similar methods like the split Bregman iteration. These splitting methods seem to break the objective function into separate parts and then interactively optimize each piece. I just wanted to understand how to set up that optimization with this particular deblurring problem, in particular setting up the regularization term $|Du|^2$. In the denoising problem the regularization was $|Du|$, so the answer to this question will provide and additional example of setting up ADMM. In particular the $|Du|^2$ should be convex whereas the $|Du|$ was not--since there might have been some special handling in the setup and execution of the optimizers in the denoising case that is not required in the deblurring case.