KernelEditor

MLModule

genre

Kernel

author

MeVis Medical Solutions AG

package

MeVisLab/Standard

dll

MLKernel

definition

MLKernel.def

see also

Convolution, ExtendedConvolution, Rank, Morphology

keywords

enhance, sphere, mirror, spherical, extents, normalize, input

Purpose

The module KernelEditor implements an editor for 6D kernels.

Operations on the kernel such as textual editing, element normalization, gauss settings, undo/redo, size changes, and arithmetic operations are supported.

Usage

The typical way to use the edited kernel in other modules is to connect the text field with the kernel input fields of other modules.

The textual input of the kernel shows rows of kernel elements. A typical kernel string look like

(*,0,0,0,0,0):          ,          ,  0.038462,          ,
(*,1,0,0,0,0):          ,  0.038462,  0.038462,  0.038462,
(*,2,0,0,0,0):  0.038462,  0.038462,  0.038462,  0.038462,  0.038462
(*,3,0,0,0,0):          ,  0.038462,  0.038462,  0.038462,
(*,4,0,0,0,0):          ,          ,  0.038462,          ,

(*,0,1,0,0,0):          ,          ,  0.038462,          ,
(*,1,1,0,0,0):          ,  0.038462,  0.038462,  0.038462,
(*,2,1,0,0,0):  0.038462,  0.038462,  0.038462,  0.038462,  0.038462
(*,3,1,0,0,0):          ,  0.038462,  0.038462,  0.038462,
(*,4,1,0,0,0):          ,          ,  0.038462,          ,

This example shows a 5x5x2 kernel with extents 1 in c-, t-, and u-dimension.

All rows contain their start coordinates in the kernel, where the x coordinate is an asterisk since it represents all x coordinates in the row.

Details

  • Not all kernel elements need to be specified. Empty fields separated by commas do not become part of the kernel.

  • Kernel extents are automatically adapted to the extent given by actual defined kernel elements. This way, it is not possible to create an empty kernel of size 3x3x1x1x1x1 in which only one voxel is defined. Extents will be set automatically to 1x1x1x1x1x1 in this case.

For large kernels, it might be useful to specify single elements like the following example

(3,4,1,0,0,0):17

This sets the kernel element at position (3,4,1,0,0,0) to value 17.

Windows

Default Panel

../../../Modules/ML/MLKernel/mhelp/Images/Screenshots/KernelEditor._default.png

Output Fields

output0

name: output0, type: Image

Parameter Fields

Field Index

All: Trigger

Kernel: String

Sphere: Trigger

Apply: Trigger

KernelC: Integer

Sqrt(K): Trigger

C: Trigger

KernelT: Integer

Status: String

Element Sum: Double

KernelU: Integer

T: Trigger

Field Width: Integer

KernelX: Integer

U: Trigger

FillGaps: Trigger

KernelY: Integer

Undo: Trigger

Gauss: Trigger

KernelZ: Integer

V-K: Trigger

K*V: Trigger

Log v(K): Trigger

V/K: Trigger

K+V: Trigger

Norm: Trigger

Value v=: Double

K-V: Trigger

Num Elements: Integer

X: Trigger

K/V: Trigger

Precision: Integer

Y: Trigger

K^2: Trigger

Redo: Trigger

Z: Trigger

K^V: Trigger

SetValues: Trigger

Visible Fields

KernelX

name: kernelX, type: Integer, default: 3, minimum: 1

Sets the x-extent of the kernel.

KernelY

name: kernelY, type: Integer, default: 3, minimum: 1

Sets the y-extent of the kernel.

KernelZ

name: kernelZ, type: Integer, default: 1, minimum: 1

Sets the z-extent of the kernel.

KernelC

name: kernelC, type: Integer, default: 1, minimum: 1

Sets the c-extent of the kernel.

KernelT

name: kernelT, type: Integer, default: 1, minimum: 1

Sets the t-extent of the kernel.

KernelU

name: kernelU, type: Integer, default: 1, minimum: 1

Sets the u-extent of the kernel.

Field Width

name: fieldWidth, type: Integer, default: 10, minimum: 1

Sets the minimum number of characters used to show a kernel element in the text field.

It can be used to adapt the textual appearance of the kernel to the length of the kernel element numbers.

Precision

name: precision, type: Integer, default: 6, minimum: 1, maximum: 64

Sets the minimum number of digits after the comma used to show a kernel element in the text field.

It can be adjusted to adapt the textual appearance of the kernel and the precision of the kernel element.

Value v=

name: value, type: Double, default: 1

Sets a generic value used by many of the operations (e.g., K+V, K-V, K^V).

Apply

name: setKernelExt, type: Trigger

When pressed, the edited kernel is reset to the currently set extent.

Newly generated kernel elements are set initially to the value given in Value v=.

SetValues

name: setElementValues, type: Trigger

When pressed, all kernel elements are set to the value in Value v=.

FillGaps

name: fillGapsWith, type: Trigger

When pressed, all empty kernel elements so far are set to the value in Value v=.

K+V

name: add, type: Trigger

When pressed, the value in Value v= is added to all kernel elements.

K-V

name: sub, type: Trigger

When pressed, the value in Value v= is subtracted from all kernel elements.

K*V

name: mult, type: Trigger

When pressed, the value in Value v= is multiplied by all kernel elements.

K/V

name: div, type: Trigger

When pressed, all kernel elements are divided by the value in Value v=.

K^2

name: sqr, type: Trigger

When pressed, each kernel element is raised to the power of 2.

Sqrt(K)

name: sqrt, type: Trigger

When pressed, each kernel element is replaced by its square root.

V/K

name: invDiv, type: Trigger

When pressed, the value in Value v= is divided by all kernel elements.

V-K

name: invSub, type: Trigger

When pressed, each kernel element is subtracted from the value in Value v=.

K^V

name: pow, type: Trigger

When pressed, each kernel element is being by the power of the value in Value v=.

Log v(K)

name: log, type: Trigger

When pressed, all kernel elements are being replaced by its logarithm to the base of the value in Value v=.

Gauss

name: gauss, type: Trigger

When pressed, the kernel elements are set to form a normalized Gaussian kernel.

Norm

name: normalize, type: Trigger

When pressed, the kernel elements are normalized.

This means that the sum of all elements result to 1.

Sphere

name: spherical, type: Trigger

When pressed, the kernel is converted to a spherical kernel.

All

name: mirror, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in 6D.

X

name: mirrorX, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the x-dimension.

Y

name: mirrorY, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the y-dimension.

Z

name: mirrorZ, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the y-dimension.

C

name: mirrorC, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the c-dimension.

T

name: mirrorT, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the t-dimension.

U

name: mirrorU, type: Trigger

When pressed, all kernel elements are mirrored in a point-symmetric manner in the u-dimension.

Undo

name: undo, type: Trigger

When pressed, the last change is undone.

Redo

name: redo, type: Trigger

When pressed, the last undo operation is undone.

Num Elements

name: numElements, type: Integer, persistent: no

Shows the number of kernel elements.

Element Sum

name: elementSum, type: Double, persistent: no

Shows the sum of all kernel elements.

Status

name: status, type: String, persistent: no

Shows information about the module.

Kernel

name: kernel, type: String

Shows and sets the kernel as a string.

After editing, this field can be connected to the external kernel field of various kernel modules.