Extension (Concept)

Extension (Overview)

An extension is the way to extend and define image values outside its definition domain. It has two objectives:

  • It allows the user to define side-effects (border effects) for some algorithms.

  • It allows the algorithms to speed up their processing time thanks to the padding trick.

Any algorithm is allowed to modify the extenion of an image. This means that even if the image is constant, e.g. the input of an algorithm, the algorithm is allowed to write the input’s extension.

  • E: A model of Extension

  • ext: An instance of E

Type definition

Type

Abbr

Definition

Requirements

E::support_fill

either std::true_type or std::false_type

E::support_mirror

either std::true_type or std::false_type

E::support_periodize

either std::true_type or std::false_type

Valid expression

Expression

Return Type

Precondition

Sementics

ext.fill(v)

E::support_fill is std::true_type

Fill the extension with value v

ext.mirror()

E::support_mirror is std::true_type

Fill the extension by mirrorizing the image.

ext.periodize()

E::support_periodize is std::true_type

Fill the extension by periodizing the image.