create_class_lut_mlpT_create_class_lut_mlpCreateClassLutMlpCreateClassLutMlpcreate_class_lut_mlp — Create a look-up table using a multi-layer perceptron to classify byte
images.
Number of bits used from the pixels. It controls the storage requirement
of the LUT classifier and is bounded by the bit depth of the image
('bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" <= 8). If the bit depth of the
LUT is smaller ('bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" < 8), the classes
of multiple pixel combinations will be mapped to the same LUT entry,
which can result in a lower accuracy for the classification. One of these
clusters contains
pixel combinations,
where NumComponentsNumComponentsNumComponentsNumComponentsnumComponentsnum_components denotes the dimension of the LUT, which is
specified in create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp. For example,
for 'bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" = 7,
NumComponentsNumComponentsNumComponentsNumComponentsnumComponentsnum_components = 3, the classes of 8 pixel
combinations are mapped in the same LUT entry. The LUT requires at most
bytes of storage.
For example, for NumComponentsNumComponentsNumComponentsNumComponentsnumComponentsnum_components = 3,
'bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" = 8 and NumOutputNumOutputNumOutputNumOutputnumOutputnum_output < 16
(specified in create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp), the LUT requires 8 MB of storage
with internal storage optimization. If NumOutputNumOutputNumOutputNumOutputnumOutputnum_output = 1,
the LUT requires only 2 MB of storage by using the full bit depth of the
LUT. The runtime for the classification in classify_image_class_lutclassify_image_class_lutClassifyImageClassLutClassifyImageClassLutClassifyImageClassLutclassify_image_class_lut
becomes minimal if the LUT fits into the cache.
Method for the class selection for the LUT. Can be modified to control
the accuracy and the runtime needed to create the LUT classifier.
The value in 'class_selection'"class_selection""class_selection""class_selection""class_selection""class_selection" is ignored if the bit depth of
the LUT is maximal, thus 'bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" = 8 holds.
If the bit depth of the LUT is smaller
('bit_depth'"bit_depth""bit_depth""bit_depth""bit_depth""bit_depth" < 8), the classes of multiple pixel
combinations will be mapped to the same LUT entry. One of these clusters
contains
pixel combinations,
where NumComponentsNumComponentsNumComponentsNumComponentsnumComponentsnum_components denotes the dimension of the LUT, which is
specified in create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp. By choosing
'class_selection'"class_selection""class_selection""class_selection""class_selection""class_selection" = 'best'"best""best""best""best""best", the class that
appears most often in the cluster is stored in the LUT.
For 'class_selection'"class_selection""class_selection""class_selection""class_selection""class_selection" = 'fast'"fast""fast""fast""fast""fast", only one pixel of the
cluster, i.e., the pixel with the smallest value (component-wise), is
classified. The returned class is stored in the LUT. In this case, the
accuracy of the subsequent classification could become lower. On the other
hand, the runtime needed to create the LUT can be reduced, which is
proportional to the maximal needed storage of the LUT, which is defined
with
.
Possible values:'fast'"fast""fast""fast""fast""fast", 'best'"best""best""best""best""best"
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on internal data level.
This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.
If the parameters are valid, the operator create_class_lut_mlpcreate_class_lut_mlpCreateClassLutMlpCreateClassLutMlpCreateClassLutMlpcreate_class_lut_mlp
returns the value 2 (
H_MSG_TRUE)
. If necessary an exception is raised.