Gaussian Texture Inpainting

Presentation   -   Papers   -   Source codes   -   Online demo   -   Tutorial   -   Credits

Presentation

  Image inpainting is a famous image processing task that consists in filling missing regions of an image based on the surrounding context. In the case of textures which can be modelled by a stochastic model, inpainting can be formulated as conditional sampling of a probability distribution, namely, the distribution of the masked region given the values on its border. In this work, we have shown that, for a Gaussian texture model, such a conditional sampling could be performed exactly, leading to a simple microtexture inpainting algorithm which can handle holes of any shape and size while precisely respecting a stochastic model.

Original Inpainted
Original Inpainted

Papers

  Our microtexture inpainting algorithm is described in the papers

"Texture Inpainting Using Efficient Gaussian Conditional Simulation" (Bruno Galerne, Arthur Leclaire), SIAM Journal of Imaging Sciences, vol. 10, no. 3, pp. 1446–1474, 2017.
Published version. Hal. doi. Webpage. Online demo.

"An Algorithm for Gaussian Texture Inpainting" (Bruno Galerne, Arthur Leclaire),
accepted to Image Processing Online, 2017.
Revised preprint. Webpage. Online demo.

"Microtexture Inpainting through Gaussian Conditional Simulation" (Bruno Galerne, Arthur Leclaire, Lionel Moisan), in the Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, 2016. Revised Preprint. Hal.

  The experiments shown in these papers can be reproduced using the codes available below. Our microtexture inpainting algorithm is also illustrated on this tutorial page.

Source codes (Matlab and C)

  In the archive siims_release.zip, one can find Matlab Source codes associated to our microtexture inpainting algorithm. The main inpainting function is gaussian_inpainting.m ; an older version is given in kriging_inpainting.m. The difference between the two functions is that in the latter, the linear system is solved by a direct method which can be fast for small images but which does not apply to very large images. We thus recommend using gaussian_inpainting.m which can be applied on any image and any mask.

  The archive contains all functions required to apply Gaussian inpainting. It also contains

  A source code in C language is also available here.

  If you find some bugs or mistakes in those codes, you can report them by email to Arthur Leclaire.

Online demo

  An online demo has been submitted to Image Processing on Line and is available here.
  The C source code can be downladed here.

Credits

  The texture samples used in our experiments were made available by researchers whom I would like to thank warmly.

  The images criminisi_* were taken from the article

Region filling and object removal by exemplar-based image inpainting. (A. Criminisi, P. Pérez, K. Toyama), IEEE Transactions on Image Processing 13(9), 2004.

  The texture wood1008_sq_a_reduced.png comes from Bruno Galerne's personal collection.

  The other examples were made available by the authors of the article

Gabor Noise by Example. (Bruno Galerne, Ares Lagae, Sylvain Lefebvre and George Drettakis), ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2012) 31(4), 2012. Webpage.