learn_ndim_box — Train a classificator using a multi-channel image.
learn_ndim_box trains the classificator ClassifHandle with the gray values of MultiChannelImage using the points in Foreground as training sample. The points in Background are to be rejected by the classificator. The classificator trained thus can be used in class_ndim_box to segment multi-channel images. Foreground are the points that should be found, Background contains the points that should not be found.
Each pixel is trained once during the training process. For points in Foreground the class “0” is used, while for Background “1” is used. Pixels are trained by alternating points from Foreground with points from Background. If one region is smaller than the other, pixels are taken cyclically from the smaller region until the larger region is exhausted. learn_ndim_box later accepts only points that can be classified into class “0”.
From a user's point of view the key difference between learn_ndim_norm and learn_ndim_box is that in the latter case the rejection class affects the classification process itself. Here, a hyper plane is generated that separates Foreground and Background classes, so that no points in feature space are classified incorrectly. As for learn_ndim_norm, however, an overlap between Foreground and Background class is allowed. This has its effect on the return value Quality. The larger the overlap, the smaller this value.
All channels must be of the same type.
This operator modifies the state of the following input parameter:
Foreground pixels to be trained.
Background pixels to be trained (rejection class).
Multi-channel training image.
Handle of the classifier.
Let N be the number of generated hyper-cuboids and A be the area of the larger input region. Then the runtime complexity is O(N * A).
learn_ndim_box returns 2 (H_MSG_TRUE) if all parameters are correct and there is an active classificator. The behavior with respect to the input images can be determined by setting the values of the flags 'no_object_result' and 'empty_region_result' with set_system. If necessary, an exception is raised.