**Name**

**disocclusion** Disocclusion using global minimisation of cost by dynamic recursive programing

**Command Synopsis**

**disocclusion** [-e *energy_type*] [-a] *input* *holes* *output*

-eenergy_type: Energy of a level line : 0 = only length, 1 = only angle (default), otherwise = angle+length

-a : If used then the orientation of each entering level line is computed more accurately on a ball of radius 4

input: Input occluded Cimage

holes: Input Fimage containing the only occlusions

output: Output disoccluded Cimage

**Function Summary**

void disocclusion (Input , Output , Holes , energy_type , angle )

Cimage Input , Output ;

Fimage Holes ;

char *angle ;

int *energy_type ;

**Description**

This modules performs a singular (level-lines based) interpolation of missing parts in the *Input* image. There is no detection of missing parts, which are assumed to be completely specified by the *Holes* image, each of them being uniquely associated with a positive value (the `drawocclusion`

module can
be used to create such a mask image of the holes). Missing parts must be **simply connected** domains (i.e, without hole). In case they are not, the algorithm will automatically change them into simply connected sets by simply adding the holes.

The interpolation is carried out in the following way : for each missing part, the algorithm finds an optimal set of interpolating level lines
{*L*_{i, t}, *i* *I*_{t}, *t* IR} according to the energy

(( + ||)*d*^{1})*dt*

where
, 0, denotes the curvature and
The option **-a** allows to compute more accurately the directions of the outer level lines at the boundary of each missing part.

The values of and depends on the parameter **energy_type**. More precisely

The minimization is performed by a dynamic programming approach and a global minimal solution is computed. See [Mas02] for a detailed description of the algorithm.

**See Also**

**Version 2.0**

Last Modification date : Thu Apr 15 04:45:34 2004

**Author**

Simon Masnou