Skip to content

classify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knnT_classify_image_class_knn๐Ÿ”—

Short description๐Ÿ”—

classify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knnT_classify_image_class_knn โ€” Classify an image with a k-Nearest-Neighbor classifier.

Signature๐Ÿ”—

classify_image_class_knn( image Image, out region ClassRegions, out image DistanceImage, class_knn KNNHandle, real RejectionThreshold )void ClassifyImageClassKnn( const HObject& Image, HObject* ClassRegions, HObject* DistanceImage, const HTuple& KNNHandle, const HTuple& RejectionThreshold )static void HOperatorSet.ClassifyImageClassKnn( HObject image, out HObject classRegions, out HObject distanceImage, HTuple KNNHandle, HTuple rejectionThreshold )def classify_image_class_knn( image: HObject, knnhandle: HHandle, rejection_threshold: float ) -> Tuple[HObject, HObject]

Herror T_classify_image_class_knn( const Hobject Image, Hobject* ClassRegions, Hobject* DistanceImage, const Htuple KNNHandle, const Htuple RejectionThreshold )

HRegion HImage::ClassifyImageClassKnn( HImage* DistanceImage, const HClassKnn& KNNHandle, double RejectionThreshold ) const

HRegion HClassKnn::ClassifyImageClassKnn( const HImage& Image, HImage* DistanceImage, double RejectionThreshold ) const

HRegion HImage.ClassifyImageClassKnn( out HImage distanceImage, HClassKnn KNNHandle, double rejectionThreshold )

HRegion HClassKnn.ClassifyImageClassKnn( HImage image, out HImage distanceImage, double rejectionThreshold )

Description๐Ÿ”—

classify_image_class_knnClassifyImageClassKnn performs a pixel classification with a k-Nearest-Neighbor classifier (k-NN) KNNHandleKNNHandleknnhandle on the multichannel image Imageimageimage. Before calling classify_image_class_knnClassifyImageClassKnn the k-NN classifier must be trained with train_class_knnTrainClassKnn. Imageimageimage must have NumDimnumDimnum_dim channels, as specified with create_class_knnCreateClassKnn. 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_knnAddSamplesImageClassKnn. The parameter RejectionThresholdrejectionThresholdrejection_threshold can be used to reject pixels that have an uncertain classification. RejectionThresholdrejectionThresholdrejection_threshold represents a threshold on the distance to the nearest neighbor returned by the classification. All pixels having a probability below RejectionThresholdrejectionThresholdrejection_threshold are not assigned to any class. DistanceImagedistanceImagedistance_image contains the distance of each pixel to its nearest neighbor.

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 โ†’ object (real)HObject (real)HRegion (real)HObject (real)Hobject * (real)

Segmented classes.

DistanceImagedistanceImagedistance_image (output_object) image โ†’ objectHObjectHImageHObjectHobject *

Distance of the pixelโ€™s nearest neighbor.

KNNHandleKNNHandleknnhandle (input_control) class_knn โ†’ (handle)HTuple (HHandle)HClassKnn, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the k-NN classifier.

RejectionThresholdrejectionThresholdrejection_threshold (input_control) real โ†’ (real)HTuple (double)HTuple (double)floatHtuple (double)

Threshold for the rejection of the classification.

Default: 0.50.5
Suggested values: 0.0, 0.1, 0.2, 0.3, 5.0, 10.0, 255.00.0, 0.1, 0.2, 0.3, 5.0, 10.0, 255.0
Restriction: RejectionThreshold >= 0.0

Example๐Ÿ”—

(HDevelop)

read_image (Image, 'ic')
gen_rectangle1 (Board, 80, 320, 110, 350)
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_knn (3, KNNHandle)
add_samples_image_class_knn (Image, Classes, KNNHandle)
get_sample_num_class_knn (KNNHandle, NumSamples)
train_class_knn (KNNHandle, [], [])
classify_image_class_knn (Image, ClassRegions, DistanceImage, \
                          KNNHandle, 0.5)
dev_display (ClassRegions)

Result๐Ÿ”—

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

Combinations with other operators๐Ÿ”—

Combinations

Possible predecessors

train_class_knnTrainClassKnn, read_class_knnReadClassKnn

Alternatives

classify_image_class_svmClassifyImageClassSvm, classify_image_class_mlpClassifyImageClassMlp, classify_image_class_gmmClassifyImageClassGmm, classify_image_class_lutClassifyImageClassLut, class_ndim_normClassNdimNorm, class_2dim_supClass2dimSup

See also

add_samples_image_class_knnAddSamplesImageClassKnn, create_class_knnCreateClassKnn

Module๐Ÿ”—

Foundation