=================================================================================
                         colour inpainting with ITKrMM
=================================================================================

This is a small collection of Matlab m-files that implement and demonstrate the applicability of the ITKrMM (iterative thresholding& K residual means for masked data) algorithm to perform inpainting of colour corrupted images in an efficient way. In addition, the algorithm automatically selects the low-rank component size and adaptively chooses the the sparsity parameter within OMP for the image inpainting tasks as described in:

1. ’Dictionary Learning from Incomplete Data for Efficient Image Restoration’ V.Naumova, K Schnass, EUSIPCO 2017. In particular it can be used to reproduce the figures/experiments in the paper.

2. ’Dictionary learning from incomplete data’ V.Naumova, K Schnass, arXiv:1701.03655: a detailed description of the algorithm.

Karin & Valeriya
(karin.schnass@uibk.ac.at, valeriya@simula.no)
=================================================================================

What's in it:
=================================================================================

1. colour_inpainting_script.m - reproduces the inpainting experiments for colour images in the paper, can be run as is using default settings.

2. itkrmm.m - implements the ITKrMM algorithm. Input parameters are described inside.

3. rec_lratom - implements the algorithm for recovering a low rank atom from masked data. Input parameters are described inside.

4. pic2patches.m - extracts patches and locations from a colour image, 
	input parameters described inside.

5. patches2pic.m - recomposes patches and locations to a colour image,
	input parameters described inside.

6. showdico.m - converts a vectorised patch dictionary to a colour 
	image of the patch dictionary, usage described inside. 

7. aOMPm.m - implements Orthogonal Matching Pursuit for masked signals with automatic choice of the sparsity level of the signal, used for inpainting, input parameters described inside.

8. OMPm.m - implements Orthogonal Matching Pursuit for masked signals, used
inside wKSVD, input parameters described inside.

9. wKSVD.m - implementation of the weighted KSVD algorithm
	in its version adapted to masked data with fixed sparsity level, 
	as described in:
	’Sparse Representation for Color Image Restoration’
	by J. Mairal, M. Elad and G. Sapiro, IEEE TSP, 2008,
	input parameters described inside (no guarantees!!)

10. images - a folder containing all test images and masks.

=================================================================================

