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_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
模块
基础