Skip to content

classify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svmT_classify_image_class_svm🔗

Short description🔗

classify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svmT_classify_image_class_svm — Classify an image with a support vector machine.

Signature🔗

classify_image_class_svm( image Image, out region ClassRegions, class_svm SVMHandle )void ClassifyImageClassSvm( const HObject& Image, HObject* ClassRegions, const HTuple& SVMHandle )static void HOperatorSet.ClassifyImageClassSvm( HObject image, out HObject classRegions, HTuple SVMHandle )def classify_image_class_svm( image: HObject, svmhandle: HHandle ) -> HObject

Herror T_classify_image_class_svm( const Hobject Image, Hobject* ClassRegions, const Htuple SVMHandle )

HRegion HImage::ClassifyImageClassSvm( const HClassSvm& SVMHandle ) const

HRegion HClassSvm::ClassifyImageClassSvm( const HImage& Image ) const

HRegion HImage.ClassifyImageClassSvm( HClassSvm SVMHandle )

HRegion HClassSvm.ClassifyImageClassSvm( HImage image )

Description🔗

classify_image_class_svmClassifyImageClassSvm performs a pixel classification with the support vector machine (SVM) SVMHandleSVMHandlesvmhandle on the multichannel image Imageimageimage. Before calling classify_image_class_svmClassifyImageClassSvm the SVM must be trained with train_class_svmTrainClassSvm. Imageimageimage must have NumFeaturesnumFeaturesnum_features channels, as specified with create_class_svmCreateClassSvm. On output, ClassRegionsclassRegionsclass_regions contains NumClassesnumClassesnum_classes regions as the result of the classification. Note that the order of the regions that are returned in ClassRegionsclassRegionsclass_regions corresponds to the order of the classes as defined by the training regions in add_samples_image_class_svmAddSamplesImageClassSvm.

To prevent that the SVM assigns pixels that lie outside the convex hull of the training data in the feature space to one of the classes, it is useful in many cases to explicitly train a rejection class by adding samples for the rejection class with add_samples_image_class_svmAddSamplesImageClassSvm and by re-training the SVM with train_class_svmTrainClassSvm.

An alternative for explicitly defining a rejection class is to use an SVM in the mode 'novelty-detection'"novelty-detection". Please refer to the description in create_class_svmCreateClassSvm and add_samples_image_class_svmAddSamplesImageClassSvm.

Execution information🔗

Execution information
  • 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.

Parameters🔗

Imageimageimage (input_object) (multichannel-)image → object (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HObject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HImage (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HObject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)Hobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

Input image.

ClassRegionsclassRegionsclass_regions (output_object) region-array → objectHObjectHRegionHObjectHobject *

Segmented classes.

SVMHandleSVMHandlesvmhandle (input_control) class_svm → (handle)HTuple (HHandle)HClassSvm, HTuple (IntPtr)HHandleHtuple (handle)

SVM handle.

Example🔗

(HDevelop)

read_image (Image, 'ic')
gen_rectangle1 (Board, 20, 270, 160, 420)
gen_rectangle1 (Capacitor, 359, 263, 371, 302)
gen_rectangle1 (Resistor, 200, 252, 290, 256)
gen_rectangle1 (IC, 180, 135, 216, 165)
concat_obj (Board, Capacitor, Classes)
concat_obj (Classes, Resistor, Classes)
concat_obj (Classes, IC, Classes)
create_class_svm (3, 'rbf', 0.01, 0.01, 4, 'one-versus-all', \
                  'normalization', 3, SVMHandle)
add_samples_image_class_svm (Image, Classes, SVMHandle)
train_class_svm (SVMHandle, 0.001, 'default')
reduce_class_svm (SVMHandle, 'bottom_up', 2, 0.01, SVMHandleReduced)
classify_image_class_svm (Image, ClassRegions, SVMHandleReduced)
dev_display (ClassRegions)

Result🔗

If the parameters are valid the operator classify_image_class_svmClassifyImageClassSvm returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

train_class_svmTrainClassSvm, read_class_svmReadClassSvm, reduce_class_svmReduceClassSvm

Alternatives

classify_image_class_gmmClassifyImageClassGmm, classify_image_class_knnClassifyImageClassKnn, classify_image_class_mlpClassifyImageClassMlp, classify_image_class_lutClassifyImageClassLut, class_ndim_normClassNdimNorm, class_2dim_supClass2dimSup

See also

add_samples_image_class_svmAddSamplesImageClassSvm, create_class_svmCreateClassSvm

Module🔗

Foundation