ImageDev

MorphologicalKernel3d

Represents a 3x3x3 kernel dedicated to be applied on a binary image. Each kernel element can be assigned to one of three different values.

A 3D morphological kernel contains exactly 27 values and indexes matching the following table: $$ \begin{array}{ccc} \text{for z = 0} & \text{for z = 1}& \text{for z = 2} \\ \begin{bmatrix} 0 & 1 & 2\\ 3 & 4 & 5\\ 6 & 7 & 8 \end{bmatrix} & \begin{bmatrix} 9 & 10 & 11\\ 12 & 13 & 14\\ 15 & 16 & 17 \end{bmatrix} & \begin{bmatrix} 18 & 19 & 20\\ 21 & 22 & 23\\ 24 & 25 & 26 \end{bmatrix} \end{array} $$ Accepted values for the kernel are:

Syntax

Method Description
Ptr New( Value value = ZERO ) Constructor returning a kernel with all elements initialized with the same value
  • value: the value to assign.
  • Value getValue( int index ) get the value of a specific kernel's element at the position index
  • index: the position of the kernel's element between 0 and 26.
  • void setValue( int index, Values value ) Assigns a value to a specific kernel's element
  • index: the position of the kernel's element between 0 and 26.
  • value: the value to assign.
  • void setAllValues(Values value = ZERO ) Assigns the same value to all kernel elements.
  • value: the default value for all of a kernel's elements.
  • void rotateX( size_t rotation = 1 ) Applies a direct rotation of a PI/4 multiple around the kernel's X axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 18 & 9 & 0\\ 21 & 12 & 3\\ 24 & 15 & 6 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 9 & 0 & 3\\ 18 & 12 & 6\\ 21 & 24 & 15 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • void rotateY( size_t rotation = 1 ) Applies a direct rotation of a PI/4 multiple around the kernel's Y axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 6 & 7 & 8\\ 15 & 16 & 17\\ 24 & 25 & 26 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 7 & 8 & 17\\ 6 & 16 & 26\\ 15 & 24 & 25 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • void rotateZ( size_t rotation = 1 ) Applies a direct rotation of a PI/4 multiple around the kernel's Z axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 0 & 1 & 2\\ 3 & 4& 5\\ 6 & 7 & 8 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 1 & 2 & 5\\ 0 & 4 & 8\\ 3 & 6 & 7 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • Method Description
    MorphologicalKernel3d(value) Constructor returning a kernel with all elements initialized with the same value
  • value: the value to assign.
  • get_value(index) get the value of a specific kernel's element at the position index
  • index: the position of the kernel's element between 0 and 26.
  • set_value(index, value) Assigns a value to a specific kernel's element
  • index: the position of the kernel's element between 0 and 26.
  • value: the value to assign.
  • set_all_values(value) Assigns the same value to all kernel elements.
  • value: the default value for all of a kernel's elements.
  • rotate_x(rotation) Applies a direct rotation of a PI/4 multiple around the kernel's X axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 18 & 9 & 0\\ 21 & 12 & 3\\ 24 & 15 & 6 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 9 & 0 & 3\\ 18 & 12 & 6\\ 21 & 24 & 15 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • rotate_y(rotation) Applies a direct rotation of a PI/4 multiple around the kernel's Y axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 6 & 7 & 8\\ 15 & 16 & 17\\ 24 & 25 & 26 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 7 & 8 & 17\\ 6 & 16 & 26\\ 15 & 24 & 25 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • rotate_z(rotation) Applies a direct rotation of a PI/4 multiple around the kernel's Z axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 0 & 1 & 2\\ 3 & 4& 5\\ 6 & 7 & 8 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 1 & 2 & 5\\ 0 & 4 & 8\\ 3 & 6 & 7 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • Method Description
    public MorphologicalKernel3d(Values initValue) Constructor returning a kernel with all elements initialized with the same value
  • value: the value to assign.
  • Value GetValue(int index) get the value of a specific kernel's element at the position index
  • index: the position of the kernel's element between 0 and 26.
  • void SetValue(int index, Values value) Assigns a value to a specific kernel's element
  • index: the position of the kernel's element between 0 and 26.
  • value: the value to assign.
  • void SetAllValues(Values value) Assigns the same value to all kernel elements.
  • value: the default value for all of a kernel's elements.
  • void RotateX(int rotation) Applies a direct rotation of a PI/4 multiple around the kernel's X axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 18 & 9 & 0\\ 21 & 12 & 3\\ 24 & 15 & 6 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 9 & 0 & 3\\ 18 & 12 & 6\\ 21 & 24 & 15 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • void RotateY(int rotation) Applies a direct rotation of a PI/4 multiple around the kernel's Y axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 6 & 7 & 8\\ 15 & 16 & 17\\ 24 & 25 & 26 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 7 & 8 & 17\\ 6 & 16 & 26\\ 15 & 24 & 25 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.
  • void RotateZ(int rotation) Applies a direct rotation of a PI/4 multiple around the kernel's Z axis.
    $$ \begin{array}{ccc} \begin{bmatrix} 0 & 1 & 2\\ 3 & 4& 5\\ 6 & 7 & 8 \end{bmatrix} & \text{ =>} & \begin{bmatrix} 1 & 2 & 5\\ 0 & 4 & 8\\ 3 & 6 & 7 \end{bmatrix} \end{array} $$
  • rotation: the number of rotations of PI/4.