classify_image_class_knnT_classify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn分类图像类K-最近邻(算子)

名称

classify_image_class_knnT_classify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn — 使用 k-最近邻分类器对图像进行分类。

签名

classify_image_class_knn(Image : ClassRegions, DistanceImage : KNNHandle, RejectionThreshold : )

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

void ClassifyImageClassKnn(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

static void HOperatorSet.ClassifyImageClassKnn(HObject image, out HObject classRegions, out HObject distanceImage, HTuple KNNHandle, HTuple rejectionThreshold)

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

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

def classify_image_class_knn(image: HObject, knnhandle: HHandle, rejection_threshold: float) -> Tuple[HObject, HObject]

描述

classify_image_class_knnclassify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn 使用基于 k-最近邻(k-NN)分类器 KNNHandleKNNHandleKNNHandleKNNHandleKNNHandleknnhandle 对多通道图像 ImageImageImageImageimageimage 执行像素分类。在调用 classify_image_class_knnclassify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn 之前,必须使用 train_class_knntrain_class_knnTrainClassKnnTrainClassKnnTrainClassKnntrain_class_knn 对 k-NN 分类器进行训练。图像 ImageImageImageImageimageimage 必须具有 create_class_knncreate_class_knnCreateClassKnnCreateClassKnnCreateClassKnncreate_class_knn 中指定的 NumDimNumDimNumDimNumDimnumDimnum_dim 个通道。输出时,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 将包含 NumClassesNumClassesNumClassesNumClassesnumClassesnum_classes 个区域作为分类结果。请注意,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 中返回的区域顺序与 add_samples_image_class_knnadd_samples_image_class_knnAddSamplesImageClassKnnAddSamplesImageClassKnnAddSamplesImageClassKnnadd_samples_image_class_knn 中训练区域定义的类顺序相对应。参数 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 可用于剔除分类结果不确定的像素。RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 表示分类返回的最近邻距离的阈值。所有概率低于 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 的像素均不被分配至任何类别。DistanceImageDistanceImageDistanceImageDistanceImagedistanceImagedistance_image 包含每个像素与其最近邻像素之间的距离。

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image objectHImageHObjectHImageHobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

输入图像。

ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions (输出对象)  region-array objectHRegionHObjectHRegionHobject * (real)

分割的类别。

DistanceImageDistanceImageDistanceImageDistanceImagedistanceImagedistance_image (输出对象)  image objectHImageHObjectHImageHobject *

像素最近邻的距离。

KNNHandleKNNHandleKNNHandleKNNHandleKNNHandleknnhandle (输入控制)  class_knn HClassKnn, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

k-NN 分类器的句柄。

RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

分类拒绝的阈值。

默认值: 0.5

建议值: 0.0, 0.1, 0.2, 0.3, 5.0, 10.0, 255.0

限制: RejectionThreshold >= 0.0

示例(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)

结果

如果参数有效,算子 classify_image_class_knnclassify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn 返回值 2 (H_MSG_TRUE)。如有必要,则抛出异常。

可能的前趋

train_class_knntrain_class_knnTrainClassKnnTrainClassKnnTrainClassKnntrain_class_knn, read_class_knnread_class_knnReadClassKnnReadClassKnnReadClassKnnread_class_knn

替代

classify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm, classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp, classify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmmClassifyImageClassGmmclassify_image_class_gmm, classify_image_class_lutclassify_image_class_lutClassifyImageClassLutClassifyImageClassLutClassifyImageClassLutclassify_image_class_lut, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm, class_2dim_supclass_2dim_supClass2dimSupClass2dimSupClass2dimSupclass_2dim_sup

另见

add_samples_image_class_knnadd_samples_image_class_knnAddSamplesImageClassKnnAddSamplesImageClassKnnAddSamplesImageClassKnnadd_samples_image_class_knn, create_class_knncreate_class_knnCreateClassKnnCreateClassKnnCreateClassKnncreate_class_knn

模块

基础