.. _eu.cimg.Inpaint:

Inpaint node
============

.. raw:: html

   <!-- Do not edit this file! It is generated automatically by Natron itself. -->

|pluginIcon| 

*This documentation is for version 1.0 of Inpaint (eu.cimg.Inpaint).*

Description
-----------

Inpaint (a.k.a. content-aware fill) the areas indicated by the Mask input using patch-based inpainting.

Be aware that this filter may produce different results on each frame of a video, even if there is little change in the video content. To inpaint areas with lots of details, it may be better to inpaint on a single frame and paste the inpainted area on other frames (if a transform is also required to match the other frames, it may be computed by tracking).

A tutorial on using this filter can be found at http://blog.patdavid.net/2014/02/getting-around-in-gimp-gmic-inpainting.html

The algorithm is described in the two following publications:

“A Smarter Examplar-based Inpainting Algorithm using Local and Global Heuristics for more Geometric Coherence.” (M. Daisy, P. Buyssens, D. Tschumperlé, O. Lezoray). IEEE International Conference on Image Processing (ICIP’14), Paris/France, Oct. 2014

and

“A Fast Spatial Patch Blending Algorithm for Artefact Reduction in Pattern-based Image Inpainting.” (M. Daisy, D. Tschumperlé, O. Lezoray). SIGGRAPH Asia 2013 Technical Briefs, Hong-Kong, November 2013.

Uses the ‘inpaint’ plugin from the CImg library.

CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (compatible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu). The ‘inpaint’ CImg plugin is distributed under the CeCILL (compatible with the GNU GPL) license.

Inputs
------

+--------+-------------+----------+
| Input  | Description | Optional |
+========+=============+==========+
| Source |             | No       |
+--------+-------------+----------+
| Mask   |             | Yes      |
+--------+-------------+----------+

Controls
--------

.. tabularcolumns:: |>{\raggedright}p{0.2\columnwidth}|>{\raggedright}p{0.06\columnwidth}|>{\raggedright}p{0.07\columnwidth}|p{0.63\columnwidth}|

.. cssclass:: longtable

+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Parameter / script name                 | Type    | Default | Function                                                                                                                           |
+=========================================+=========+=========+====================================================================================================================================+
| Patch Size / ``patchSize``              | Integer | 7       |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Lookup Size / ``lookupSize``            | Double  | 16      |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Lookup Factor / ``lookupFactor``        | Double  | 0.1     |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Blend Size / ``blendSize``              | Double  | 1.2     |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Blend Threshold / ``blendThreshold``    | Double  | 0       |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Blend Decay / ``blendDecay``            | Double  | 0.05    |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Blend Scales / ``blendScales``          | Integer | 10      |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Allow Outer Blending / ``isBlendOuter`` | Boolean | On      |                                                                                                                                    |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| (Un)premult / ``premult``               | Boolean | Off     | Divide the image by the alpha channel before processing, and re-multiply it afterwards. Use if the input images are premultiplied. |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Invert Mask / ``maskInvert``            | Boolean | Off     | When checked, the effect is fully applied where the mask is 0.                                                                     |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+
| Mix / ``mix``                           | Double  | 1       | Mix factor between the original and the transformed image.                                                                         |
+-----------------------------------------+---------+---------+------------------------------------------------------------------------------------------------------------------------------------+

.. |pluginIcon| image:: eu.cimg.Inpaint.png
   :width: 10.0%
