https://doi.org/10.5201/ipol.2017.198
Raw File
README.txt
% gti: Gaussian Texture Inpainting

This software is written by
     Bruno Galerne <bruno.galerne@parisdescartes.fr>
     Arthur Leclaire <arthur.leclaire@cmla.ens-cachan.fr>

This program is free software: you can use, modify and/or
redistribute it under the terms of the simplified BSD
License. You should have received a copy of this license along
this program. If not, see
<http://www.opensource.org/licenses/bsd-license.html>.

This is the version 1.3 of gti, released August 2019.
Future versions and updates on the IPOL website.

# OVERVIEW

The program performs inpainting of texture images.
It relies on conditional simulation of a Gaussian texture model
on the mask, knowing the values of the texture on a border of the mask.
The Gaussian texture model is estimated on the mask complement.
The linear system involved in the Gaussian conditional simulation
is solved with a conjugate gradient descent.

For more information consult the corresponding paper at the address
https://www.ipol.im/pub/art/2017/198/

# COMPILATION

This software requires an ANSI C compiler and the libpng library[1-2],
version >= 1.2, and the libfftw3 library[4].
Pre-compiled versions of the libpng library are
available for Linux (libpng-dev in most distributions), Mac OS X (in
fink[1]) and Windows (provided by GnuWin32[3]).

Several parts of this software can run faster thanks to parallel
computations relying on the OpenMP library[5]. In order to use
parallel FFTW routine, you should also install libfftw3_omp.
If preferred you may use library 'fftw3_threads’ instead of ‘fftw3_omp’
but then you should edit both the source code and the compilation instructions.

To compile gti, use the makefile with simply `make`. 
Alternately you can call your C compiler with
	cc src/io_png.c src/gti.c -Wall -std=c99 -Wextra -pedantic -O3 -ftree-vectorize -funroll-loops -fopenmp -lpng -lfftw3f_omp -lfftw3f -lgomp -lm -o gti

If you do not have the OpenMP library, you should edit the makefile
and remove libraries containing "openmp" or "omp" before using make.
Alternately you can call your C compiler with
	cc src/io_png.c src/gti.c -Wall -std=c99 -Wextra -pedantic -O3 -ftree-vectorize -funroll-loops -lpng -lfftw3f -lm -o gti

You can also build a version with optimization options for gcc with
`make opti` and one with debugging symbols with `make debug`.

[1] http://www.libpng.org/pub/png/libpng.html
[2] http://pdb.finkproject.org/pdb/browse.php?summary=libpng
[3] http://gnuwin32.sourceforge.net/packages/libpng.htm
[4] http://www.fftw.org/
[5] http://www.openmp.org/

# DOCUMENTATION

You can generate the documentation for this software by going
in the doc directory and running the command
	doxygen doxygen.conf
After that, you can open the file doc/html/index.html in your
web browser.

# USAGE

This program only reads and writes PNG files. The call syntax is
    gti in.png mask.png out.png [ep niter w]
where
     in.png, mask.png	are the input images
     in.png  		is the image to be inpainted
     mask.png		is the mask image (white on inpainting domain)
     out.png		output image     
     ep, niter, w	are optional parameters
     ep	 		is the desired precision for linear solving
     niter		is the max number of iterations of gradient descent
     w			is the width of the conditioning border

The software will fill the inpainting domain (defined by the white
zone in mask.png) with a texture sample derived from the values of
in.png outside the mask. The inpainted image is stored in out.png.

# EXAMPLES

An example input image is provided in the data folder.

* simple inpainting
    gti data/in.png data/mask.png data/out.png

* inpainting with specific parameters
    gti data/in.png data/mask.png data/out.png 0.00001 10000 5
back to top